Content Type for www-urlencoded should match additions like "; charset=utf8" as well
[project/luci.git] / libs / http / luasrc / http / protocol.lua
index ab696d5..b9a50ef 100644 (file)
@@ -568,7 +568,9 @@ function parse_message_header( src )
                                REQUEST_URI       = msg.request_uri;
                                SCRIPT_NAME       = msg.request_uri:gsub("?.+$","");
                                SCRIPT_FILENAME   = "";         -- XXX implement me
-                               SERVER_PROTOCOL   = "HTTP/" .. string.format("%.1f", msg.http_version)
+                               SERVER_PROTOCOL   = "HTTP/" .. string.format("%.1f", msg.http_version);
+                               QUERY_STRING      = msg.request_uri:match("?")
+                                       and msg.request_uri:gsub("^.+?","") or ""
                        }
 
                        -- Populate HTTP_* environment variables
@@ -617,7 +619,7 @@ function parse_message_body( src, msg, filecb )
 
        -- Is it application/x-www-form-urlencoded ?
        elseif msg.env.REQUEST_METHOD == "POST" and msg.env.CONTENT_TYPE and
-              msg.env.CONTENT_TYPE == "application/x-www-form-urlencoded"
+              msg.env.CONTENT_TYPE:match("^application/x%-www%-form%-urlencoded")
        then
                return urldecode_message_body( src, msg, filecb )