]> git.gsnw.org Git - fping.git/commitdiff
macos: use AI_UNUSABLE hint for getaddrinfo()
authorSteven Noonan <steven@uplinklabs.net>
Thu, 27 Feb 2020 19:14:07 +0000 (11:14 -0800)
committerSteven Noonan <steven@uplinklabs.net>
Thu, 27 Feb 2020 21:06:20 +0000 (13:06 -0800)
Signed-off-by: Steven Noonan <steven@uplinklabs.net>
src/fping.c

index d7abe4a813d6000f805d7f6a443ff0c62bf16bd3..def72b45759b235aa47c924b4303034e870147e3 100644 (file)
@@ -80,6 +80,17 @@ extern "C" {
 
 #include <sys/select.h>
 
+/*** compatibility ***/
+
+/* Mac OS X's getaddrinfo() does not fail if we use an invalid combination,
+ * e.g. AF_INET6 with "127.0.0.1". If we pass AI_UNUSABLE to flags, it behaves
+ * like other platforms. But AI_UNUSABLE isn't available on other platforms,
+ * and we can safely use 0 for flags instead.
+ */
+#ifndef AI_UNUSABLE
+#define AI_UNUSABLE 0
+#endif
+
 /*** externals ***/
 
 extern char* optarg;
@@ -2273,7 +2284,7 @@ void add_name(char* name)
 
     /* getaddrinfo */
     bzero(&hints, sizeof(struct addrinfo));
-    hints.ai_flags = 0;
+    hints.ai_flags = AI_UNUSABLE;
     hints.ai_socktype = SOCK_RAW;
     hints.ai_family = hints_ai_family;
     if (hints_ai_family == AF_INET) {