diff options
author | Jo-Philipp Wich <jow@openwrt.org> | 2008-06-23 19:16:00 +0000 |
---|---|---|
committer | Jo-Philipp Wich <jow@openwrt.org> | 2008-06-23 19:16:00 +0000 |
commit | a9a80a3be34dc1fa83b14fb8503a9dd4849e8310 (patch) | |
tree | 49825c72c0e5227954acb8103f0a18f4d84537c5 /libs | |
parent | 4f630d647c7191ac9d8fd2dfcc8e93746faf391a (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.lua | 11 |
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 +} |