ABI fixes for OSX/BSD; fixes #6860 (#11666)

This commit is contained in:
Andreas Rumpf 2019-07-06 13:00:29 +02:00 • committed by GitHub
commit 02b9af2f75
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 613 additions and 11 deletions

View file

@ -449,7 +449,7 @@ proc getAddrString*(sockAddr: ptr SockAddr): string =
when defined(posix) and not defined(nimdoc):
proc makeUnixAddr*(path: string): Sockaddr_un =
result.sun_family = AF_UNIX.uint16
result.sun_family = AF_UNIX.TSa_Family
if path.len >= Sockaddr_un_path_length:
raise newException(ValueError, "socket path too long")
copyMem(addr result.sun_path, path.cstring, path.len + 1)
@ -460,7 +460,7 @@ proc getSockName*(socket: SocketHandle): Port =
when useWinVersion:
name.sin_family = uint16(ord(AF_INET))
else:
name.sin_family = uint16(posix.AF_INET)
name.sin_family = TSa_Family(posix.AF_INET)
#name.sin_port = htons(cint16(port))
#name.sin_addr.s_addr = htonl(INADDR_ANY)
var namelen = sizeof(name).SockLen
@ -479,7 +479,7 @@ proc getLocalAddr*(socket: SocketHandle, domain: Domain): (string, Port) =
when useWinVersion:
name.sin_family = uint16(ord(AF_INET))
else:
name.sin_family = uint16(posix.AF_INET)
name.sin_family = TSa_Family(posix.AF_INET)
var namelen = sizeof(name).SockLen
if getsockname(socket, cast[ptr SockAddr](addr(name)),
addr(namelen)) == -1'i32:
@ -491,7 +491,7 @@ proc getLocalAddr*(socket: SocketHandle, domain: Domain): (string, Port) =
when useWinVersion:
name.sin6_family = uint16(ord(AF_INET6))
else:
name.sin6_family = uint16(posix.AF_INET6)
name.sin6_family = TSa_Family(posix.AF_INET6)
var namelen = sizeof(name).SockLen
if getsockname(socket, cast[ptr SockAddr](addr(name)),
addr(namelen)) == -1'i32:
@ -516,7 +516,7 @@ proc getPeerAddr*(socket: SocketHandle, domain: Domain): (string, Port) =
when useWinVersion:
name.sin_family = uint16(ord(AF_INET))
else:
name.sin_family = uint16(posix.AF_INET)
name.sin_family = TSa_Family(posix.AF_INET)
var namelen = sizeof(name).SockLen
if getpeername(socket, cast[ptr SockAddr](addr(name)),
addr(namelen)) == -1'i32:
@ -528,7 +528,7 @@ proc getPeerAddr*(socket: SocketHandle, domain: Domain): (string, Port) =
when useWinVersion:
name.sin6_family = uint16(ord(AF_INET6))
else:
name.sin6_family = uint16(posix.AF_INET6)
name.sin6_family = TSa_Family(posix.AF_INET6)
var namelen = sizeof(name).SockLen
if getpeername(socket, cast[ptr SockAddr](addr(name)),
addr(namelen)) == -1'i32:

View file

@ -1492,7 +1492,7 @@ proc setFilePermissions*(filename: string, permissions: set[FilePermission]) {.
if fpOthersWrite in permissions: p = p or S_IWOTH
if fpOthersExec in permissions: p = p or S_IXOTH
if chmod(filename, p) != 0: raiseOSError(osLastError())
if chmod(filename, cast[Mode](p)) != 0: raiseOSError(osLastError())
else:
when useWinUnicode:
wrapUnary(res, getFileAttributesW, filename)

View file

@ -1358,7 +1358,7 @@ elif not defined(useNimRtl):
proc select(readfds: var seq[Process], timeout = 500): int =
var tv: Timeval
tv.tv_sec = posix.Time(0)
tv.tv_usec = timeout * 1000
tv.tv_usec = Suseconds(timeout * 1000)
var rd: TFdSet
var m = 0

View file

@ -2520,7 +2520,7 @@ when not defined(JS):
when defined(macosx):
var a: Timeval
gettimeofday(a)
result = toBiggestFloat(a.tv_sec.int64) + toFloat(a.tv_usec)*0.00_0001
result = toBiggestFloat(a.tv_sec.int64) + toBiggestFloat(a.tv_usec)*0.00_0001
elif defined(posix):
var ts: Timespec
discard clock_gettime(realTimeClockId, ts)