From 6e7bcaa878af80be338b18bfe4ec45c51ebbeeed Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Sun, 7 Feb 2010 18:09:11 +0100 Subject: [PATCH] libreplace: Attempt to fix bug 5910, detect a broken getaddrinfo Signed-off-by: Stefan Metzmacher --- lib/replace/libreplace_network.m4 | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) 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]) -- 2.34.1