From c3363f833c47090368eac566bfcb9c48dec42f6a Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Thu, 4 Oct 2001 14:05:12 +0000 Subject: [PATCH] Albert Chin's improved gethostbyname_r() tests --- acinclude.m4 | 65 +++++++++++++++------------------------------------- configure.in | 3 --- 2 files changed, 18 insertions(+), 50 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 874a85d4c..eb0b2c497 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -246,7 +246,6 @@ AC_DEFUN(CURL_CHECK_INET_NTOA_R, AC_DEFINE(NEED_REENTRANT) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))])]) - ]) AC_DEFUN(CURL_CHECK_GETHOSTBYADDR_R, @@ -324,8 +323,6 @@ rc = gethostbyaddr_r(address, length, type, &h, ac_cv_gethostbyaddr_args=8],[ AC_MSG_RESULT(no) have_missing_r_funcs="$have_missing_r_funcs gethostbyaddr_r"])])])])]) - - ]) AC_DEFUN(CURL_CHECK_GETHOSTBYNAME_R, @@ -333,28 +330,21 @@ AC_DEFUN(CURL_CHECK_GETHOSTBYNAME_R, dnl check for number of arguments to gethostbyname_r. it might take dnl either 3, 5, or 6 arguments. AC_CHECK_FUNCS(gethostbyname_r,[ - AC_MSG_CHECKING(if gethostbyname_r takes 3 arguments) - AC_TRY_RUN([ + AC_MSG_CHECKING([if gethostbyname_r takes 3 arguments]) + AC_TRY_COMPILE([ #include #include #include int -main () { -struct hostent h; -struct hostent_data hdata; -char *name = "localhost"; -int rc; -memset(&h, 0, sizeof(struct hostent)); -memset(&hdata, 0, sizeof(struct hostent_data)); -rc = gethostbyname_r(name, &h, &hdata); -exit (rc != 0 ? 1 : 0); }],[ +gethostbyname_r(const char *, struct hostent *, struct hostent_data *);],[ +gethostbyname_r(NULL, NULL, NULL);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) - AC_MSG_CHECKING(if gethostbyname_r with -D_REENTRANT takes 3 arguments) - AC_TRY_RUN([ + AC_MSG_CHECKING([if gethostbyname_r with -D_REENTRANT takes 3 arguments]) + AC_TRY_COMPILE([ #define _REENTRANT #include @@ -362,53 +352,34 @@ exit (rc != 0 ? 1 : 0); }],[ #include int -main () { -struct hostent h; -struct hostent_data hdata; -char *name = "localhost"; -int rc; -memset(&h, 0, sizeof(struct hostent)); -memset(&hdata, 0, sizeof(struct hostent_data)); -rc = gethostbyname_r(name, &h, &hdata); -exit (rc != 0 ? 1 : 0); }],[ +gethostbyname_r(const char *,struct hostent *, struct hostent_data *);],[ +gethostbyname_r(NULL, NULL, NULL);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) AC_DEFINE(NEED_REENTRANT) ac_cv_gethostbyname_args=3],[ AC_MSG_RESULT(no) - AC_MSG_CHECKING(if gethostbyname_r takes 5 arguments) - AC_TRY_RUN([ + AC_MSG_CHECKING([if gethostbyname_r takes 5 arguments]) + AC_TRY_COMPILE([ #include #include -int -main () { -struct hostent *hp; -struct hostent h; -char *name = "localhost"; -char buffer[8192]; -int h_errno; -hp = gethostbyname_r(name, &h, buffer, 8192, &h_errno); -exit (hp == NULL ? 1 : 0); }],[ +struct hostent * +gethostbyname_r(const char *, struct hostent *, char *, int, int *);],[ +gethostbyname_r(NULL, NULL, NULL, 0, NULL);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_5) ac_cv_gethostbyname_args=5],[ AC_MSG_RESULT(no) - AC_MSG_CHECKING(if gethostbyname_r takes 6 arguments) - AC_TRY_RUN([ + AC_MSG_CHECKING([if gethostbyname_r takes 6 arguments]) + AC_TRY_COMPILE([ #include #include int -main () { -struct hostent h; -struct hostent *hp; -char *name = "localhost"; -char buf[8192]; -int rc; -int h_errno; -rc = gethostbyname_r(name, &h, buf, 8192, &hp, &h_errno); -exit (rc != 0 ? 1 : 0); }],[ +gethostbyname_r(const char *, struct hostent *, char *, size_t, +struct hostent **, int *);],[ +gethostbyname_r(NULL, NULL, NULL, 0, NULL, NULL);],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_GETHOSTBYNAME_R_6) ac_cv_gethostbyname_args=6],[ diff --git a/configure.in b/configure.in index 5af823cf6..a11fe9bb7 100644 --- a/configure.in +++ b/configure.in @@ -446,9 +446,6 @@ then Set to explicitly specify we don't want to use thread-safe functions) else - dnl check that 'localhost' resolves first - CURL_CHECK_WORKING_RESOLVER - dnl dig around for gethostbyname_r() CURL_CHECK_GETHOSTBYNAME_R()