luci-base: additionally return error code strings in luci.util.ubus()
[project/luci.git] / modules / luci-base / luasrc / http.lua
index 29edb44..be5577e 100644 (file)
@@ -359,6 +359,7 @@ function mimedecode_message_body(src, msg, file_cb)
                        then
                                field.name = lhttp.header_attribute(buffer, "name")
                                field.file = lhttp.header_attribute(buffer, "filename")
+                               field[1] = field.file
                        end
 
                        if field.headers then
@@ -443,16 +444,16 @@ function urldecode_message_body(src, msg)
                if what == parser.TUPLE then
                        name, value = nil, nil
                elseif what == parser.NAME then
-                       name = lhttp.urldecode(buffer)
+                       name = lhttp.urldecode(buffer, lhttp.DECODE_PLUS)
                elseif what == parser.VALUE and name then
                        local val = msg.params[name]
 
                        if type(val) == "table" then
-                               val[#val+1] = lhttp.urldecode(buffer) or ""
+                               val[#val+1] = lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or ""
                        elseif val ~= nil then
-                               msg.params[name] = { val, lhttp.urldecode(buffer) or "" }
+                               msg.params[name] = { val, lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or "" }
                        else
-                               msg.params[name] = lhttp.urldecode(buffer) or ""
+                               msg.params[name] = lhttp.urldecode(buffer, lhttp.DECODE_PLUS) or ""
                        end
                elseif what == parser.ERROR then
                        err = buffer