Caused by not skipping the \c\l with Chunked encoding after the body is parsed.
This commit is contained in:
Dominik Picheta
2014-12-21 22:41:13 +00:00
parent 2990a9224b
commit e6245674f2

View File

@@ -156,7 +156,9 @@ proc parseChunks(s: Socket, timeout: int): string =
else:
httpError("Invalid chunk size: " & chunkSizeStr)
inc(i)
if chunkSize <= 0: break
if chunkSize <= 0:
s.skip(2, timeout) # Skip \c\L
break
result.setLen(ri+chunkSize)
var bytesRead = 0
while bytesRead != chunkSize:
@@ -521,7 +523,9 @@ proc parseChunks(client: AsyncHttpClient): Future[string] {.async.} =
else:
httpError("Invalid chunk size: " & chunkSizeStr)
inc(i)
if chunkSize <= 0: break
if chunkSize <= 0:
discard await recvFull(client.socket, 2) # Skip \c\L
break
result.add await recvFull(client.socket, chunkSize)
discard await recvFull(client.socket, 2) # Skip \c\L
# Trailer headers will only be sent if the request specifies that we want