diff options
author | Dominik Picheta <dominikpicheta@gmail.com> | 2017-11-24 16:29:34 +0000 |
---|---|---|
committer | Dominik Picheta <dominikpicheta@gmail.com> | 2017-11-24 16:29:34 +0000 |
commit | e5a27c96fbd8a3bdd48b1974595381c1a335aaa5 (patch) | |
tree | cd37e1d8d4a324199e38f6ed82f2e35bb532b5d0 /lib/pure/net.nim | |
parent | 66d7091b7994b3e5a1d4ede1b50cbf59780c9c16 (diff) | |
download | Nim-e5a27c96fbd8a3bdd48b1974595381c1a335aaa5.tar.gz |
Implements nativesockets.accept.
Diffstat (limited to 'lib/pure/net.nim')
-rw-r--r-- | lib/pure/net.nim | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/lib/pure/net.nim b/lib/pure/net.nim index b8d05642b..5c162317e 100644 --- a/lib/pure/net.nim +++ b/lib/pure/net.nim @@ -753,10 +753,8 @@ proc acceptAddr*(server: Socket, client: var Socket, address: var string, ## flag is specified then this error will not be raised and instead ## accept will be called again. assert(client != nil) - var sockAddress: Sockaddr_in - var addrLen = sizeof(sockAddress).SockLen - var sock = accept(server.fd, cast[ptr SockAddr](addr(sockAddress)), - addr(addrLen)) + let ret = accept(server.fd) + let sock = ret[0] if sock == osInvalidSocket: let err = osLastError() @@ -764,6 +762,7 @@ proc acceptAddr*(server: Socket, client: var Socket, address: var string, acceptAddr(server, client, address, flags) raiseOSError(err) else: + address = ret[1] client.fd = sock client.isBuffered = server.isBuffered @@ -776,9 +775,6 @@ proc acceptAddr*(server: Socket, client: var Socket, address: var string, let ret = SSLAccept(client.sslHandle) socketError(client, ret, false) - # Client socket is set above. - address = $inet_ntoa(sockAddress.sin_addr) - when false: #defineSsl: proc acceptAddrSSL*(server: Socket, client: var Socket, address: var string): SSLAcceptResult {. |