Make asyncdispatch.connectAddr IPv6-aware.

This commit is contained in:
Andrew Yourtchenko 2015-06-24 01:39:58 +02:00
commit 37f50695ee

View file

@ -1135,7 +1135,7 @@ else:
client: AsyncFD]]("acceptAddr") client: AsyncFD]]("acceptAddr")
proc cb(sock: AsyncFD): bool = proc cb(sock: AsyncFD): bool =
result = true result = true
var sockAddress: SockAddr_in var sockAddress: Sockaddr_storage
var addrLen = sizeof(sockAddress).Socklen var addrLen = sizeof(sockAddress).Socklen
var client = accept(sock.SocketHandle, var client = accept(sock.SocketHandle,
cast[ptr SockAddr](addr(sockAddress)), addr(addrLen)) cast[ptr SockAddr](addr(sockAddress)), addr(addrLen))
@ -1151,7 +1151,7 @@ else:
retFuture.fail(newException(OSError, osErrorMsg(lastError))) retFuture.fail(newException(OSError, osErrorMsg(lastError)))
else: else:
register(client.AsyncFD) register(client.AsyncFD)
retFuture.complete(($inet_ntoa(sockAddress.sin_addr), client.AsyncFD)) retFuture.complete((getAddrString(cast[ptr SockAddr](addr sockAddress)), client.AsyncFD))
addRead(socket, cb) addRead(socket, cb)
return retFuture return retFuture