Revert "libs/lucid-http: copyz() causes a Kernel oops on brcm-2.4, revert to copy...
[project/luci.git] / libs / lucid-http / luasrc / lucid / http / server.lua
index f5de4e9..95484a0 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
 
@@ -358,8 +358,8 @@ function Server.process(self, client, env)
        local close = false
        local stat, code, msg, message, err
        
-       client:setsockopt("socket", "rcvtimeo", 15)
-       client:setsockopt("socket", "sndtimeo", 15)
+       client:setsockopt("socket", "rcvtimeo", 5)
+       client:setsockopt("socket", "sndtimeo", 5)
        
        repeat
                -- parse headers
@@ -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,14 +455,14 @@ 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
                                        close = true
                                end
                        end
-               elseif message.request_method ~= "head" then
+               elseif message.env.REQUEST_METHOD ~= "HEAD" then
                        headers["Content-Length"] = 0
                end