summary refs log tree commit diff stats
path: root/lib/pure/net.nim
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@gmail.com>2017-11-24 16:29:34 +0000
committerDominik Picheta <dominikpicheta@gmail.com>2017-11-24 16:29:34 +0000
commite5a27c96fbd8a3bdd48b1974595381c1a335aaa5 (patch)
treecd37e1d8d4a324199e38f6ed82f2e35bb532b5d0 /lib/pure/net.nim
parent66d7091b7994b3e5a1d4ede1b50cbf59780c9c16 (diff)
downloadNim-e5a27c96fbd8a3bdd48b1974595381c1a335aaa5.tar.gz
Implements nativesockets.accept.
Diffstat (limited to 'lib/pure/net.nim')
-rw-r--r--lib/pure/net.nim10
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 {.