[BUILD] add the USE_GETADDRINFO build option
This one is used to call getaddrinfo() to resolve IPv6 host names.
diff --git a/Makefile b/Makefile
index 6d3f156..cd6aac9 100644
--- a/Makefile
+++ b/Makefile
@@ -23,6 +23,7 @@
# USE_LIBCRYPT : enable crypted passwords using -lcrypt
# USE_CRYPT_H : set it if your system requires including crypt.h
# USE_VSYSCALL : enable vsyscall on Linux x86, bypassing libc
+# USE_GETADDRINFO : use getaddrinfo() to resolve IPv6 host names.
#
# Options can be forced by specifying "USE_xxx=1" or can be disabled by using
# "USE_xxx=" (empty string).
@@ -215,12 +216,14 @@
else
ifeq ($(TARGET),solaris)
# This is for Solaris 8
+ # We also enable getaddrinfo() which works since solaris 8.
USE_POLL = implicit
TARGET_CFLAGS = -fomit-frame-pointer -DFD_SETSIZE=65536 -D_REENTRANT
TARGET_LDFLAGS = -lnsl -lsocket
USE_TPROXY = implicit
USE_LIBCRYPT = implicit
USE_CRYPT_H = implicit
+ USE_GETADDRINFO = implicit
else
ifeq ($(TARGET),freebsd)
# This is for FreeBSD
@@ -354,6 +357,11 @@
BUILD_OPTIONS += $(call ignore_implicit,USE_CRYPT_H)
endif
+ifneq ($(USE_GETADDRINFO),)
+OPTIONS_CFLAGS += -DUSE_GETADDRINFO
+BUILD_OPTIONS += $(call ignore_implicit,USE_GETADDRINFO)
+endif
+
ifneq ($(USE_POLL),)
OPTIONS_CFLAGS += -DENABLE_POLL
OPTIONS_OBJS += src/ev_poll.o
diff --git a/Makefile.bsd b/Makefile.bsd
index 1ce871b..05ad3ac 100644
--- a/Makefile.bsd
+++ b/Makefile.bsd
@@ -77,6 +77,7 @@
# set some defines when needed.
# Known ones are -DENABLE_POLL
# - use -DTPROXY to compile with transparent proxy support.
+# - use -DUSE_GETADDRINFO to use of getaddrinfo() to resolve IPv6 host names
DEFINE = -DTPROXY
# May be changed to patch PAGE_SIZE on every platform when using dlmalloc
diff --git a/Makefile.osx b/Makefile.osx
index f60508e..f3ecdb8 100644
--- a/Makefile.osx
+++ b/Makefile.osx
@@ -77,6 +77,7 @@
# set some defines when needed.
# Known ones are -DENABLE_POLL
# - use -DTPROXY to compile with transparent proxy support.
+# - use -DUSE_GETADDRINFO to use of getaddrinfo() to resolve IPv6 host names
DEFINE = -DTPROXY
# May be changed to patch PAGE_SIZE on every platform when using dlmalloc
diff --git a/README b/README
index d16dadd..7834951 100644
--- a/README
+++ b/README
@@ -70,6 +70,17 @@
Warning! group references on Solaris seem broken. Use static-pcre whenever
possible.
+Recent systems can resolve IPv6 host names using getaddrinfo(). This primitive
+is not present in all libcs and does not work in all of them either. Support in
+glibc was broken before 2.3. Some embedded libs may not properly work either,
+thus, support is disabled by default, meaning that some host names which only
+resolve as IPv6 addresses will not resolve and configs might emit an error
+during parsing. If you know that your OS libc has reliable support for
+getaddrinfo(), you can add USE_GETADDRINFO=1 on the make command line to enable
+it. This is the recommended option for most Linux distro packagers since it's
+working fine on all recent mainstream distros. It is automatically enabled on
+Solaris 8 and above, as it's known to work.
+
By default, the DEBUG variable is set to '-g' to enable debug symbols. It is
not wise to disable it on uncommon systems, because it's often the only way to
get a complete core when you need one. Otherwise, you can set DEBUG to '-s' to