]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
[BUILD] add the USE_GETADDRINFO build option
authorWilly Tarreau <w@1wt.eu>
Wed, 23 Mar 2011 19:00:53 +0000 (20:00 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 23 Mar 2011 21:49:56 +0000 (22:49 +0100)
This one is used to call getaddrinfo() to resolve IPv6 host names.

Makefile
Makefile.bsd
Makefile.osx
README

index 6d3f15651623890bf26637c8559775a4a47b86dc..cd6aac94204a508a23905007bf47176556d7e860 100644 (file)
--- 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 @@ ifeq ($(TARGET),linux26)
 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 @@ OPTIONS_CFLAGS  += -DNEED_CRYPT_H
 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
index 1ce871b72420a43b80b50f17b7f3bc767b745c6b..05ad3ac195fbf286187b7903f9b693ee8b8b4426 100644 (file)
@@ -77,6 +77,7 @@ OPT_OBJS =
 # 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
index f60508e99a9fa8becc79046b7f25f62edbc372f5..f3ecdb8ff633a812a357ffc57c7d69089f3e9107 100644 (file)
@@ -77,6 +77,7 @@ ADDLIB =
 # 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 d16dadd371c37d1697cccf4b7ce7f5a43c87ead0..78349514c369b0ba8f30be46f28cda1ee59264c5 100644 (file)
--- a/README
+++ b/README
@@ -70,6 +70,17 @@ install it on target systems. Available build options for PCRE are :
     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