Implements nativesockets.accept.
This commit is contained in:
parent
66d7091b79
commit
e5a27c96fb
3 changed files with 20 additions and 9 deletions
|
|
@ -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 {.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue