projects
/
oweals
/
luci.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix query string detection
[oweals/luci.git]
/
libs
/
lucid-http
/
luasrc
/
lucid
/
http
/
server.lua
diff --git
a/libs/lucid-http/luasrc/lucid/http/server.lua
b/libs/lucid-http/luasrc/lucid/http/server.lua
index f5de4e9a11831bcc9baea567c96ff250a5365387..67e917892ea9d243ffb55467e1601d2ac9c15f66 100644
(file)
--- a/
libs/lucid-http/luasrc/lucid/http/server.lua
+++ b/
libs/lucid-http/luasrc/lucid/http/server.lua
@@
-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
@@
-358,8
+358,8
@@
function Server.process(self, client, env)
local close = false
local stat, code, msg, message, err
local close = false
local stat, code, msg, message, err
- client:setsockopt("socket", "rcvtimeo",
1
5)
- client:setsockopt("socket", "sndtimeo",
1
5)
+ client:setsockopt("socket", "rcvtimeo", 5)
+ client:setsockopt("socket", "sndtimeo", 5)
repeat
-- parse headers
repeat
-- parse headers
@@
-453,14
+453,14
@@
function Server.process(self, client, env)
end
end
if not headers["Content-Length"] then
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
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
headers["Content-Length"] = 0
end