summary refs log tree commit diff stats
path: root/lib/pure
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2018-09-25 05:00:09 -0700
committerGitHub <noreply@github.com>2018-09-25 05:00:09 -0700
commitacf4e02514b50db9348758a3c6728f0e979a3b23 (patch)
tree5f0ad786f346d8b882565dab3c644ffdd20db3c8 /lib/pure
parent27b622665d32adf2a26128e936b83da9441e1399 (diff)
parentd87606b1002bf5ae79adbf4ffa4c7f237e777654 (diff)
downloadNim-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.nim11
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