summaryrefslogtreecommitdiffstats
path: root/src/include/configure.in
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2002-05-31 20:53:39 +0000
committerKen Raeburn <raeburn@mit.edu>2002-05-31 20:53:39 +0000
commit933efcddb5e4e17f3fcfcb963fc2ee7800df6ede (patch)
tree577954541e60f68d6f249efbc8fd0cdc334eeeb2 /src/include/configure.in
parentf6edb4cd732c30f4dd7f70814a808b95e9dead1e (diff)
downloadkrb5-933efcddb5e4e17f3fcfcb963fc2ee7800df6ede.tar.gz
krb5-933efcddb5e4e17f3fcfcb963fc2ee7800df6ede.tar.xz
krb5-933efcddb5e4e17f3fcfcb963fc2ee7800df6ede.zip
* configure.in: Check return type for getservbyname_r just as for
gethostbyname_r. * fake-addrinfo.h (GET_HOST_BY_NAME): Use plain gethostbyname if THREADSAFE_GETHOSTBYNAME is defined, even if _r versions are available. (GET_HOST_BY_ADDR) [GETHOSTBYNAME_R_RETURNS_INT]: Add missing variable declaration. (GET_SERV_BY_NAME, GET_SERV_BY_PORT): New macros, in three flavors, parallel to GET_HOST macros; not used yet. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14461 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/include/configure.in')
-rw-r--r--src/include/configure.in30
1 files changed, 27 insertions, 3 deletions
diff --git a/src/include/configure.in b/src/include/configure.in
index f18527f5b1..a5a548dcbe 100644
--- a/src/include/configure.in
+++ b/src/include/configure.in
@@ -7,9 +7,7 @@ AC_PROG_LEX
AC_C_CONST
AC_CHECK_FUNCS(strdup labs setvbuf memmove bcopy inet_ntoa inet_aton gethostbyname_r gethostbyaddr_r getservbyname_r getservbyport_r)
dnl
-dnl Check what the return type for gethostbyname_r is.
-dnl I don't think we need this for getservbyname_r at the moment, but
-dnl it does have similar issues.
+dnl Check what the return types for gethostbyname_r and getservbyname_r are.
dnl
if test "$ac_cv_func_gethostbyname_r" = yes; then
AC_MSG_CHECKING([if gethostbyname_r returns an int])
@@ -37,6 +35,32 @@ if test "$ac_cv_func_gethostbyname_r" = yes; then
fi
fi
dnl
+if test "$ac_cv_func_getservbyname_r" = yes; then
+ AC_MSG_CHECKING([if getservbyname_r returns an int])
+ AC_CACHE_VAL(krb5_cv_getservbyname_r_returns_int,
+ [AC_TRY_COMPILE([#include <netdb.h>
+ extern int getservbyname_r ();], [1;],
+ krb5_cv_getservbyname_r_returns_int=yes,
+ krb5_cv_getservbyname_r_returns_int=no)])
+ AC_MSG_RESULT($krb5_cv_getservbyname_r_returns_int)
+
+ AC_MSG_CHECKING([if getservbyname_r returns a pointer])
+ AC_CACHE_VAL(krb5_cv_getservbyname_r_returns_ptr,
+ [AC_TRY_COMPILE([#include <netdb.h>
+ extern struct servent *getservbyname_r ();], [1;],
+ krb5_cv_getservbyname_r_returns_ptr=yes,
+ krb5_cv_getservbyname_r_returns_ptr=no)])
+ AC_MSG_RESULT($krb5_cv_getservbyname_r_returns_ptr)
+
+ if test "$krb5_cv_getservbyname_r_returns_int" = "$krb5_cv_getservbyname_r_returns_ptr"; then
+ AC_MSG_WARN(cannot determine return type of getservbyname_r -- disabling)
+ ac_cv_func_getservbyname_r=no
+ fi
+ if test "$krb5_cv_getservbyname_r_returns_int" = yes; then
+ AC_DEFINE(GETSERVBYNAME_R_RETURNS_INT, 1, [Define if getservbyname_r returns int rather than struct servent * ])
+ fi
+fi
+dnl
HAVE_YYLINENO
CHECK_DIRENT
AC_TYPE_UID_T