mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-28 21:58:28 +00:00
Add getSockDomain to return AF_INET or AF_INET6 of a SocketHandle.
This commit is contained in:
@@ -315,6 +315,21 @@ proc getHostByName*(name: string): Hostent {.tags: [ReadIOEffect].} =
|
||||
result.addrList = cstringArrayToSeq(s.h_addr_list)
|
||||
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 =
|
||||
## returns the socket's associated port number.
|
||||
var name: Sockaddr_in
|
||||
|
||||
Reference in New Issue
Block a user