diff --git a/cf/broken-getaddrinfo.m4 b/cf/broken-getaddrinfo.m4 new file mode 100644 index 000000000..269ed9e56 --- /dev/null +++ b/cf/broken-getaddrinfo.m4 @@ -0,0 +1,24 @@ +dnl $Id$ +dnl +dnl test if getaddrinfo can handle numeric services + +AC_DEFUN(rk_BROKEN_GETADDRINFO,[ +AC_CACHE_CHECK([if getaddrinfo handles numeric services], ac_cv_func_getaddrinfo_numserv, +AC_TRY_RUN([[#include +#include +#include +#include + +int +main(int argc, char **argv) +{ + struct addrinfo hints, *ai; + memset(&hints, 0, sizeof(hints)); + hints.ai_flags = AI_PASSIVE; + hints.ai_socktype = SOCK_STEAM; + hints.ai_family = PF_UNSPEC; + if(getaddrinfo(NULL, "17", &hints, &ai) == EAI_SERVICE) + return 1; + return 0; +} +]], ac_cv_func_getaddrinfo_numserv=yes, ac_cv_func_getaddrinfo_numserv=no))]) diff --git a/cf/roken-frag.m4 b/cf/roken-frag.m4 index 9cc7c642a..4cc7dfb43 100644 --- a/cf/roken-frag.m4 +++ b/cf/roken-frag.m4 @@ -404,6 +404,13 @@ if test "$ac_cv_func_getnameinfo" = "yes"; then fi fi +if test "$ac_cv_func_getaddrinfo" = "yes"; then + rk_BROKEN_GETADDRINFO + if test "$ac_cv_func_getaddrinfo_numserv" = no; then + LIBOBJS="$LIBOBJS getaddrinfo.o" + fi +fi + AC_NEED_PROTO([#include ], setenv) AC_NEED_PROTO([#include ], unsetenv) AC_NEED_PROTO([#include ], gethostname)