Merge pull request #4419 from endragor/android4-sockets

Added 'android4' define that declares a different gethostbyaddr
This commit is contained in:
Andreas Rumpf 2016-06-28 19:37:24 +02:00 • committed by GitHub
commit a5f234250e
3 changed files with 20 additions and 6 deletions

View file

@ -711,8 +711,13 @@ proc getHostByAddr*(ip: string): Hostent {.tags: [ReadIOEffect].} =
cint(sockets.AF_INET)) cint(sockets.AF_INET))
if s == nil: raiseOSError(osLastError()) if s == nil: raiseOSError(osLastError())
else: else:
var s = posix.gethostbyaddr(addr(myaddr), sizeof(myaddr).Socklen, var s =
cint(posix.AF_INET)) when defined(android4):
posix.gethostbyaddr(cast[cstring](addr(myaddr)), sizeof(myaddr).cint,
cint(posix.AF_INET))
else:
posix.gethostbyaddr(addr(myaddr), sizeof(myaddr).Socklen,
cint(posix.AF_INET))
if s == nil: if s == nil:
raiseOSError(osLastError(), $hstrerror(h_errno)) raiseOSError(osLastError(), $hstrerror(h_errno))

View file

@ -2616,8 +2616,12 @@ proc gai_strerror*(a1: cint): cstring {.importc:"(char *)$1", header: "<netdb.h>
proc getaddrinfo*(a1, a2: cstring, a3: ptr AddrInfo, proc getaddrinfo*(a1, a2: cstring, a3: ptr AddrInfo,
a4: var ptr AddrInfo): cint {.importc, header: "<netdb.h>".} a4: var ptr AddrInfo): cint {.importc, header: "<netdb.h>".}
proc gethostbyaddr*(a1: pointer, a2: Socklen, a3: cint): ptr Hostent {. when not defined(android4):
importc, header: "<netdb.h>".} proc gethostbyaddr*(a1: pointer, a2: Socklen, a3: cint): ptr Hostent {.
importc, header: "<netdb.h>".}
else:
proc gethostbyaddr*(a1: cstring, a2: cint, a3: cint): ptr Hostent {.
importc, header: "<netdb.h>".}
proc gethostbyname*(a1: cstring): ptr Hostent {.importc, header: "<netdb.h>".} proc gethostbyname*(a1: cstring): ptr Hostent {.importc, header: "<netdb.h>".}
proc gethostent*(): ptr Hostent {.importc, header: "<netdb.h>".} proc gethostent*(): ptr Hostent {.importc, header: "<netdb.h>".}

View file

@ -326,8 +326,13 @@ proc getHostByAddr*(ip: string): Hostent {.tags: [ReadIOEffect].} =
cint(AF_INET)) cint(AF_INET))
if s == nil: raiseOSError(osLastError()) if s == nil: raiseOSError(osLastError())
else: else:
var s = posix.gethostbyaddr(addr(myaddr), sizeof(myaddr).Socklen, var s =
cint(posix.AF_INET)) when defined(android4):
posix.gethostbyaddr(cast[cstring](addr(myaddr)), sizeof(myaddr).cint,
cint(posix.AF_INET))
else:
posix.gethostbyaddr(addr(myaddr), sizeof(myaddr).Socklen,
cint(posix.AF_INET))
if s == nil: if s == nil:
raiseOSError(osLastError(), $hstrerror(h_errno)) raiseOSError(osLastError(), $hstrerror(h_errno))