From: Volker Lendecke Date: Sun, 7 Feb 2010 17:09:11 +0000 (+0100) Subject: libreplace: Attempt to fix bug 5910, detect a broken getaddrinfo X-Git-Tag: samba-3.6.0pre1~5534 X-Git-Url: http://git.samba.org/samba.git/?p=ira%2Fwip.git;a=commitdiff_plain;h=6e7bcaa878af80be338b18bfe4ec45c51ebbeeed;hp=9fed9011ffcd76c5a5dbf16f7d5e657b94f9fa50 libreplace: Attempt to fix bug 5910, detect a broken getaddrinfo Signed-off-by: Stefan Metzmacher --- diff --git a/lib/replace/libreplace_network.m4 b/lib/replace/libreplace_network.m4 index b7d15eaddbd..bccd77336a7 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 + #include + #include + #include + 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])