Signed-off-by: Steven Noonan <steven@uplinklabs.net>
#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;
/* 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) {