From: Jo-Philipp Wich Date: Mon, 23 Jun 2008 19:16:00 +0000 (+0000) Subject: * luci/libs: fix eof handling for urldecode_message_body() in protocol.lua X-Git-Tag: 0.8.0~785 X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fluci.git;a=commitdiff_plain;h=a9a80a3be34dc1fa83b14fb8503a9dd4849e8310 * luci/libs: fix eof handling for urldecode_message_body() in protocol.lua --- diff --git a/libs/http/luasrc/http/protocol.lua b/libs/http/luasrc/http/protocol.lua index 94a7a8212..318169e0c 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 +}