From d87606b1002bf5ae79adbf4ffa4c7f237e777654 Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Mon, 24 Sep 2018 09:19:28 +0200 Subject: Make getSockDomain work with AF_UNIX sockets Fixes #9055 --- lib/pure/nativesockets.nim | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'lib/pure/nativesockets.nim') 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 -- cgit 1.4.1-2-gfad0