summaryrefslogtreecommitdiffhomepage
path: root/libs
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2008-06-23 19:16:00 +0000
committerJo-Philipp Wich <jow@openwrt.org>2008-06-23 19:16:00 +0000
commita9a80a3be34dc1fa83b14fb8503a9dd4849e8310 (patch)
tree49825c72c0e5227954acb8103f0a18f4d84537c5 /libs
parent4f630d647c7191ac9d8fd2dfcc8e93746faf391a (diff)
* luci/libs: fix eof handling for urldecode_message_body() in protocol.lua
Diffstat (limited to 'libs')
-rw-r--r--libs/http/luasrc/http/protocol.lua11
1 files changed, 6 insertions, 5 deletions
diff --git a/libs/http/luasrc/http/protocol.lua b/libs/http/luasrc/http/protocol.lua
index 94a7a82126..318169e0cb 100644
--- a/libs/http/luasrc/http/protocol.lua
+++ b/libs/http/luasrc/http/protocol.lua
@@ -500,8 +500,7 @@ process_states['urldecode-value'] = function( msg, chunk, filecb )
-- We're somewhere within a data section and our buffer is full
if #buffer > #chunk then
-- Flush buffered data
- -- Send EOF if chunk is empty
- msg._urldeccallback( buffer:sub( 1, #buffer - #chunk ), ( #chunk == 0 ) )
+ msg._urldeccallback( buffer:sub( 1, #buffer - #chunk ), false )
-- Store new data
msg._urldeclength = msg._urldeclength + #buffer - #chunk
@@ -516,7 +515,9 @@ process_states['urldecode-value'] = function( msg, chunk, filecb )
return true
end
else
- return nil, "Unexpected EOF"
+ -- Send EOF
+ msg._urldeccallback( "", true )
+ return false
end
end
@@ -729,7 +730,7 @@ function parse_message_body( source, msg, filecb )
-- Unhandled encoding
- -- If a file callback is given then feed it line by line, else
+ -- If a file callback is given then feed it chunk by chunk, else
-- store whole buffer in message.content
else
@@ -799,4 +800,4 @@ statusmsg = {
[404] = "Not Found",
[500] = "Internal Server Error",
[503] = "Server Unavailable",
-} \ No newline at end of file
+}