Merge pull request #4242 from nim-lang/ARAQ-fixes-4221

fixes #4221
This commit is contained in:
Dominik Picheta 2016-05-30 16:04:25 +01:00
commit 0ef391b4cc

View file

@ -219,20 +219,20 @@ proc processClient(client: AsyncSocket, address: string,
else: else:
await client.sendStatus("417 Expectation Failed") await client.sendStatus("417 Expectation Failed")
# Read the body # Read the body
# - Check for Content-length header # - Check for Content-length header
if request.headers.hasKey("Content-Length"): if request.headers.hasKey("Content-Length"):
var contentLength = 0 var contentLength = 0
if parseInt(request.headers.getOrDefault("Content-Length"), if parseInt(request.headers.getOrDefault("Content-Length"),
contentLength) == 0: contentLength) == 0:
await request.respond(Http400, "Bad Request. Invalid Content-Length.") await request.respond(Http400, "Bad Request. Invalid Content-Length.")
continue
else:
request.body = await client.recv(contentLength)
assert request.body.len == contentLength
else:
await request.respond(Http400, "Bad Request. No Content-Length.")
continue continue
else:
request.body = await client.recv(contentLength)
assert request.body.len == contentLength
else:
await request.respond(Http400, "Bad Request. No Content-Length.")
continue
case request.reqMethod case request.reqMethod
of "get", "post", "head", "put", "delete", "trace", "options", of "get", "post", "head", "put", "delete", "trace", "options",