summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/replace/libreplace_network.m425
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/replace/libreplace_network.m4 b/lib/replace/libreplace_network.m4
index b7d15eaddb..bccd77336a 100644
--- a/lib/replace/libreplace_network.m4
+++ b/lib/replace/libreplace_network.m4
@@ -226,6 +226,31 @@ ret = getnameinfo(&sa, sizeof(sa),
],
libreplace_cv_HAVE_GETADDRINFO=yes,libreplace_cv_HAVE_GETADDRINFO=no)])
+
+if test x"$libreplace_cv_HAVE_GETADDRINFO" = x"yes"; then
+ # getaddrinfo is broken on some AIX systems
+ # see bug 5910, use our replacements if we detect
+ # a broken system.
+ AC_TRY_RUN([
+ #include <stddef.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
+ int main(int argc, const char *argv[])
+ {
+ struct addrinfo hints = {0,};
+ struct addrinfo *ppres;
+ const char hostname[] = "0.0.0.0";
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_family = AF_INET;
+ hints.ai_flags =
+ AI_NUMERICHOST|AI_PASSIVE|AI_ADDRCONFIG;
+ return getaddrinfo(hostname, NULL, &hints, &ppres) != 0 ? 1 : 0;
+ }],
+ libreplace_cv_HAVE_GETADDRINFO=yes,
+ libreplace_cv_HAVE_GETADDRINFO=no)
+fi
+
if test x"$libreplace_cv_HAVE_GETADDRINFO" = x"yes"; then
AC_DEFINE(HAVE_GETADDRINFO,1,[Whether the system has getaddrinfo])
AC_DEFINE(HAVE_GETNAMEINFO,1,[Whether the system has getnameinfo])