diff options
author | Dominik Picheta <dominikpicheta@googlemail.com> | 2018-09-25 05:00:09 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-25 05:00:09 -0700 |
commit | acf4e02514b50db9348758a3c6728f0e979a3b23 (patch) | |
tree | 5f0ad786f346d8b882565dab3c644ffdd20db3c8 /lib/pure | |
parent | 27b622665d32adf2a26128e936b83da9441e1399 (diff) | |
parent | d87606b1002bf5ae79adbf4ffa4c7f237e777654 (diff) | |
download | Nim-acf4e02514b50db9348758a3c6728f0e979a3b23.tar.gz |
Merge pull request #9057 from LemonBoy/fix-9055
Make getSockDomain work with AF_UNIX sockets
Diffstat (limited to 'lib/pure')
-rw-r--r-- | lib/pure/nativesockets.nim | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/pure/nativesockets.nim b/lib/pure/nativesockets.nim index a1049d599..514b8d66a 100644 --- a/lib/pure/nativesockets.nim +++ b/lib/pure/nativesockets.nim @@ -456,13 +456,10 @@ proc getSockDomain*(socket: SocketHandle): Domain = if getsockname(socket, cast[ptr SockAddr](addr(name)), addr(namelen)) == -1'i32: raiseOSError(osLastError()) - if name.sin6_family.cint == nativeAfInet: - result = AF_INET - elif name.sin6_family.cint == nativeAfInet6: - result = AF_INET6 - else: - raiseOSError(osLastError(), "unknown socket family in getSockFamily") - + try: + result = toKnownDomain(name.sin6_family.cint).get() + except UnpackError: + raise newException(IOError, "Unknown socket family in getSockDomain") proc getAddrString*(sockAddr: ptr SockAddr): string = ## return the string representation of address within sockAddr |