]> git.meshlink.io Git - catta/blobdiff - src/socket.c
disable to send src_address with windows ipv6 as it somehow causes WSASendMsg to...
[catta] / src / socket.c
index c6b670bc0c15401ac76acda1b20a693af0e4294d..31adcf81a99e5080ccd7ea7af3e80be8c0bee1f4 100644 (file)
@@ -21,6 +21,8 @@
 #include <config.h>
 #endif
 
+#define __APPLE_USE_RFC_2292
+
 #include <inttypes.h>
 #include <errno.h>
 #include <string.h>
@@ -615,6 +617,11 @@ int catta_send_dns_packet_ipv6(
     msg.msg_iovlen = 1;
     msg.msg_flags = 0;
 
+// TODO: don't ask me why, but Win8.1 64bit WSASendMsg() fails with an InvalidArgument error 10022 when IPv6 source address is specified ( everHannes / hannes.ahrens@everbase.net )
+#ifdef _WIN32
+    msg.msg_control = NULL;
+    msg.msg_controllen = 0;
+#else    
     if (iface > 0 || src_address) {
         struct in6_pktinfo *pkti;
 
@@ -638,6 +645,7 @@ int catta_send_dns_packet_ipv6(
         msg.msg_control = NULL;
         msg.msg_controllen = 0;
     }
+#endif
 
     return sendmsg_loop(fd, &msg, 0);
 }