Add getSockDomain to return AF_INET or AF_INET6 of a SocketHandle.
This commit is contained in:
parent
5f371e1504
commit
f340f76f45
1 changed files with 15 additions and 0 deletions
|
|
@ -315,6 +315,21 @@ proc getHostByName*(name: string): Hostent {.tags: [ReadIOEffect].} =
|
||||||
result.addrList = cstringArrayToSeq(s.h_addr_list)
|
result.addrList = cstringArrayToSeq(s.h_addr_list)
|
||||||
result.length = int(s.h_length)
|
result.length = int(s.h_length)
|
||||||
|
|
||||||
|
proc getSockDomain*(socket: SocketHandle): Domain =
|
||||||
|
## returns the socket's domain (AF_INET or AF_INET6).
|
||||||
|
var name: SockAddr
|
||||||
|
var namelen = sizeof(name).SockLen
|
||||||
|
if getsockname(socket, cast[ptr SockAddr](addr(name)),
|
||||||
|
addr(namelen)) == -1'i32:
|
||||||
|
raiseOSError(osLastError())
|
||||||
|
if name.sa_family == posix.AF_INET:
|
||||||
|
result = AF_INET
|
||||||
|
elif name.sa_family == posix.AF_INET6:
|
||||||
|
result = AF_INET6
|
||||||
|
else:
|
||||||
|
raise newException(OSError, "unknown socket family in getSockFamily")
|
||||||
|
|
||||||
|
|
||||||
proc getSockName*(socket: SocketHandle): Port =
|
proc getSockName*(socket: SocketHandle): Port =
|
||||||
## returns the socket's associated port number.
|
## returns the socket's associated port number.
|
||||||
var name: Sockaddr_in
|
var name: Sockaddr_in
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue