setLen now used on asyncdispatch.recv's return value on Linux.

This fixes issues with the async httpclient.
This commit is contained in:
Dominik Picheta
2014-04-06 22:06:25 +01:00
parent d98b0d9f79
commit d2593e1d62
2 changed files with 2 additions and 7 deletions

View File

@@ -664,8 +664,7 @@ else:
var retFuture = newFuture[string]()
var readBuffer = newString(size)
var sizeRead = 0
proc cb(sock: TAsyncFD): bool =
result = true
let res = recv(sock.TSocketHandle, addr readBuffer[0], size,
@@ -678,12 +677,11 @@ else:
else:
result = false # We still want this callback to be called.
elif res == 0:
#echo("Disconnected recv: ", sizeRead)
# Disconnected
retFuture.complete("")
else:
readBuffer.setLen(res)
retFuture.complete(readBuffer)
#echo("Recv cb result: ", result)
addRead(socket, cb)
return retFuture

View File

@@ -546,9 +546,6 @@ proc parseResponse(client: PAsyncHttpClient,
# Parse HTTP version info and status code.
var le = skipIgnoreCase(line, "HTTP/", linei)
if le <= 0:
while true:
let nl = await client.socket.recvLine()
echo("Got another line: ", nl)
httpError("invalid http version, " & line.repr)
inc(linei, le)
le = skipIgnoreCase(line, "1.1", linei)