HTTPd: No keep-alive after POST request, because we do not check state
[oweals/luci.git] / libs / lucid-http / luasrc / lucid / http / server.lua
index 008fd1fc2d84006e4e43a1078c8071c3b7dee54f..95484a02f0bdd49c834aecfef45a90f81c010c4c 100644 (file)
@@ -344,7 +344,7 @@ function Server.parse_headers(self, source)
                end
        until false
        
-       env.SCRIPT_NAME, env.QUERY_STRING = env.REQUEST_URI:match("(.*)%??(.*)")
+       env.SCRIPT_NAME, env.QUERY_STRING = env.REQUEST_URI:match("([^?]*)%??(.*)")
        return req
 end
 
@@ -432,6 +432,8 @@ function Server.process(self, client, env)
                        else
                                return self:error(client, 411, statusmsg[411])
                        end
+
+                       close = true
                else
                        return self:error(client, 405, statusmsg[405])
                end
@@ -453,7 +455,7 @@ function Server.process(self, client, env)
                                end
                        end
                        if not headers["Content-Length"] then
-                               if message.http_version == 1.1 then
+                               if message.env.SERVER_PROTOCOL == "HTTP/1.1" then
                                        headers["Transfer-Encoding"] = "chunked"
                                        sinkout = chunksink(client)
                                else