summary refs log tree commit diff stats
path: root/lib/pure/rawsockets.nim
diff options
context:
space:
mode:
authorAdam Strzelecki <ono@java.pl>2015-09-30 12:20:56 +0200
committerAdam Strzelecki <ono@java.pl>2015-09-30 12:25:57 +0200
commit9b5b2546200c15541bff38b9f22eb7682e68d70a (patch)
tree32a876d6076b305da362b7696613d366642cd50c /lib/pure/rawsockets.nim
parent4071219e201d76d75a95ce712027aac1d2ee5281 (diff)
downloadNim-9b5b2546200c15541bff38b9f22eb7682e68d70a.tar.gz
rawsockets: Fix getaddrinfo on FreeBSD
Currently due bug in FreeBSD passing AI_V4MAPPED to addrinfo.ai_flags causes
getaddrinfo to fail with EAI_BADFLAGS ("Invalid value for ai_flags"). That's
why we should disable this flag for now on FreeBSD.

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198092
Diffstat (limited to 'lib/pure/rawsockets.nim')
-rw-r--r--lib/pure/rawsockets.nim4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/pure/rawsockets.nim b/lib/pure/rawsockets.nim
index f5860ef28..2d7b0e5ea 100644
--- a/lib/pure/rawsockets.nim
+++ b/lib/pure/rawsockets.nim
@@ -201,7 +201,9 @@ proc getAddrInfo*(address: string, port: Port, domain: Domain = AF_INET,
   hints.ai_family = toInt(domain)
   hints.ai_socktype = toInt(sockType)
   hints.ai_protocol = toInt(protocol)
-  hints.ai_flags = AI_V4MAPPED
+  # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198092
+  when not defined(freebsd):
+    hints.ai_flags = AI_V4MAPPED
   var gaiResult = getaddrinfo(address, $port, addr(hints), result)
   if gaiResult != 0'i32:
     when useWinVersion: