libs/lucid-http: copyz() causes a Kernel oops on brcm-2.4, revert to copy() for now...
[project/luci.git] / libs / lucid-http / luasrc / lucid / http / server.lua
index 21a752c..7cfd1b7 100644 (file)
@@ -344,7 +344,7 @@ function Server.parse_headers(self, source)
                end
        until false
        
                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
 
        return req
 end
 
@@ -432,6 +432,8 @@ function Server.process(self, client, env)
                        else
                                return self:error(client, 411, statusmsg[411])
                        end
                        else
                                return self:error(client, 411, statusmsg[411])
                        end
+
+                       close = true
                else
                        return self:error(client, 405, statusmsg[405])
                end
                else
                        return self:error(client, 405, statusmsg[405])
                end
@@ -496,7 +498,9 @@ function Server.process(self, client, env)
 
                if sourceout and stat then
                        if util.instanceof(sourceout, IOResource) then
 
                if sourceout and stat then
                        if util.instanceof(sourceout, IOResource) then
-                               stat, code, msg = sourceout.fd:copyz(client, sourceout.len)
+                               -- Jow: copyz() oopses on brcm-2.4, use copy() for now
+                               --stat, code, msg = sourceout.fd:copyz(client, sourceout.len)
+                               stat, code, msg = sourceout.fd:copy(client, sourceout.len)
                        else
                                stat, msg = ltn12.pump.all(sourceout, sinkout)
                        end
                        else
                                stat, msg = ltn12.pump.all(sourceout, sinkout)
                        end