diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2018-09-16 11:34:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-16 11:34:11 +0200 |
commit | 566edd54b6bd7a1593f794b95b58b9053975e5eb (patch) | |
tree | 9baffee28c4a4433c922c0321997303337d7a2db | |
parent | 058a42c3a2609766220093bab9b8b5bb95cf6b70 (diff) | |
parent | a2a06d43f239933f0961ee903a167ae149b02606 (diff) | |
download | Nim-566edd54b6bd7a1593f794b95b58b9053975e5eb.tar.gz |
Merge pull request #8977 from LemonBoy/fix-unix-sockets
Fix connectUnix/bindUnix with abstract socket paths
-rw-r--r-- | lib/posix/posix_other.nim | 2 | ||||
-rw-r--r-- | lib/pure/net.nim | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/posix/posix_other.nim b/lib/posix/posix_other.nim index 99d67824e..ba1dd89ed 100644 --- a/lib/posix/posix_other.nim +++ b/lib/posix/posix_other.nim @@ -410,7 +410,7 @@ else: type Socklen* {.importc: "socklen_t", header: "<sys/socket.h>".} = cuint - TSa_Family* {.importc: "sa_family_t", header: "<sys/socket.h>".} = cint + TSa_Family* {.importc: "sa_family_t", header: "<sys/socket.h>".} = cushort SockAddr* {.importc: "struct sockaddr", header: "<sys/socket.h>", pure, final.} = object ## struct sockaddr diff --git a/lib/pure/net.nim b/lib/pure/net.nim index a60137dab..67cb95e2f 100644 --- a/lib/pure/net.nim +++ b/lib/pure/net.nim @@ -964,7 +964,7 @@ when defined(posix) or defined(nimdoc): when not defined(nimdoc): var socketAddr = makeUnixAddr(path) if socket.fd.connect(cast[ptr SockAddr](addr socketAddr), - sizeof(socketAddr).Socklen) != 0'i32: + (sizeof(socketAddr.sun_family) + path.len).Socklen) != 0'i32: raiseOSError(osLastError()) proc bindUnix*(socket: Socket, path: string) = @@ -973,7 +973,7 @@ when defined(posix) or defined(nimdoc): when not defined(nimdoc): var socketAddr = makeUnixAddr(path) if socket.fd.bindAddr(cast[ptr SockAddr](addr socketAddr), - sizeof(socketAddr).Socklen) != 0'i32: + (sizeof(socketAddr.sun_family) + path.len).Socklen) != 0'i32: raiseOSError(osLastError()) when defined(ssl): |