diff options
author | daurnimator <quae@daurnimator.com> | 2014-11-10 14:47:33 -0500 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2014-11-10 14:47:33 -0500 |
commit | eadd8212168e903344f94d53c5762095cb9be8f5 (patch) | |
tree | ebbfe2549a9f77108c504d8309be2e84f4d41a1e | |
parent | 9c58aa6730a10d80712c27c1498907d69a2b7852 (diff) | |
download | prosody-eadd8212168e903344f94d53c5762095cb9be8f5.tar.gz prosody-eadd8212168e903344f94d53c5762095cb9be8f5.zip |
net.http.parser: Fix chunked encoding parsing across packet boundaries.
-rw-r--r-- | net/http/parser.lua | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/http/parser.lua b/net/http/parser.lua index d896dff4..056d4b60 100644 --- a/net/http/parser.lua +++ b/net/http/parser.lua @@ -132,7 +132,7 @@ function httpstream.new(success_cb, error_cb, parser_type, options_cb) state, chunk_size = nil, nil; buf = buf:gsub("^.-\r\n\r\n", ""); -- This ensure extensions and trailers are stripped success_cb(packet); - elseif #buf - chunk_start + 2 >= chunk_size then -- we have a chunk + elseif #buf - chunk_start - 2 >= chunk_size then -- we have a chunk packet.body = packet.body..buf:sub(chunk_start, chunk_start + (chunk_size-1)); buf = buf:sub(chunk_start + chunk_size + 2); chunk_size, chunk_start = nil, nil; |