diff options
author | rockcavera <rockcavera@gmail.com> | 2021-12-17 05:01:33 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-17 09:01:33 +0100 |
commit | 5ddaf3e1fbff4c0519088612f9ec3b10d62d2316 (patch) | |
tree | bd1121d4f16be446235ebc0b502bf593690b2032 | |
parent | 609388e33fb9a19d65b5dee8711d411916981802 (diff) | |
download | Nim-5ddaf3e1fbff4c0519088612f9ec3b10d62d2316.tar.gz |
fix #19244 - solves the problem of the InAddr object constructor in Windows. (#19259)
* Update winlean.nim * Update tnet_ll.nim
-rw-r--r-- | lib/windows/winlean.nim | 2 | ||||
-rw-r--r-- | tests/stdlib/tnet_ll.nim | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/windows/winlean.nim b/lib/windows/winlean.nim index b8f3886d7..6e626e4ba 100644 --- a/lib/windows/winlean.nim +++ b/lib/windows/winlean.nim @@ -478,7 +478,7 @@ type PSockAddr = ptr SockAddr - InAddr* {.importc: "IN_ADDR", header: "winsock2.h".} = object + InAddr* {.importc: "IN_ADDR", header: "winsock2.h", union.} = object s_addr*: uint32 # IP address Sockaddr_in* {.importc: "SOCKADDR_IN", diff --git a/tests/stdlib/tnet_ll.nim b/tests/stdlib/tnet_ll.nim index 248dbb79b..2d340cea8 100644 --- a/tests/stdlib/tnet_ll.nim +++ b/tests/stdlib/tnet_ll.nim @@ -26,6 +26,7 @@ suite "inet_ntop tests": # regular var ip4 = InAddr() ip4.s_addr = 0x10111213'u32 + check: ip4.s_addr == 0x10111213'u32 var buff: array[0..255, char] let r = inet_ntop(AF_INET, cast[pointer](ip4.s_addr.addr), buff[0].addr, buff.len.int32) @@ -43,3 +44,8 @@ suite "inet_ntop tests": let r = inet_ntop(AF_INET6, cast[pointer](ip6[0].addr), buff[0].addr, buff.len.int32) let res = if r == nil: "" else: $r check: not ipv6Support or res == "10:110:20:120:30:130:40:140" + + test "InAddr": + # issue 19244 + var ip4 = InAddr(s_addr: 0x10111213'u32) + check: ip4.s_addr == 0x10111213'u32 |