diff options
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/ChangeLog | 8 | ||||
| -rw-r--r-- | src/include/configure.in | 25 | ||||
| -rw-r--r-- | src/include/k5-int.h | 22 |
3 files changed, 43 insertions, 12 deletions
diff --git a/src/include/ChangeLog b/src/include/ChangeLog index 1159f3dfd..88434bc2e 100644 --- a/src/include/ChangeLog +++ b/src/include/ChangeLog @@ -1,3 +1,11 @@ +2001-04-25 Ken Raeburn <raeburn@mit.edu> + + * k5-int.h (socklen_t) [NEED_SOCKETS] [!HAVE_SOCKLEN_T]: Define as + typedef for size_t. + (socklen) [NEED_SOCKETS]: Define macro if not already defined. + * configure.in: Don't check for support for type "void". Move + socklen_t test here from krb5 library. + 2001-04-13 Ken Raeburn <raeburn@mit.edu> * Makefile.in (adm_err.h, asn1_err.h, krb5_err.h, kv5m_err.h): diff --git a/src/include/configure.in b/src/include/configure.in index cb002fb1c..faaea125b 100644 --- a/src/include/configure.in +++ b/src/include/configure.in @@ -51,18 +51,6 @@ if test $krb5_cv_struct_prototypes = no; then AC_DEFINE(KRB5_NO_NESTED_PROTOTYPES) fi dnl -dnl Check for void type -dnl -AC_MSG_CHECKING([void]) -AC_CACHE_VAL(krb5_cv_has_void_type, -[AC_TRY_COMPILE( -[void x();], [], -krb5_cv_has_void_type=yes, krb5_cv_has_void_type=no)]) -AC_MSG_RESULT($krb5_cv_has_void_type) -if test $krb5_cv_has_void_type = yes; then -AC_DEFINE(HAS_VOID_TYPE) -fi -dnl dnl Word sizes... AC_CHECK_SIZEOF(short) AC_CHECK_SIZEOF(int) @@ -88,6 +76,19 @@ KRB5_RCTMPDIR=$krb5_cv_sys_rcdir AC_SUBST(KRB5_RCTMPDIR) dnl dnl +AC_MSG_CHECKING(for socklen_t) +AC_CACHE_VAL(krb5_cv_has_type_socklen_t, +[AC_TRY_COMPILE( +[#include <sys/types.h> +#include <sys/socket.h> +],[sizeof (socklen_t);], +krb5_cv_has_type_socklen_t=yes,krb5_cv_has_type_socklen_t=no)]) +AC_MSG_RESULT($krb5_cv_has_type_socklen_t) +if test $krb5_cv_has_type_socklen_t = yes; then + AC_DEFINE(HAVE_SOCKLEN_T) +fi +dnl +dnl AC_ARG_ENABLE([athena], [ --enable-athena build with MIT Project Athena configuration], AC_DEFINE(KRB5_ATHENA_COMPAT),) diff --git a/src/include/k5-int.h b/src/include/k5-int.h index d2976a488..fa1ffd4a5 100644 --- a/src/include/k5-int.h +++ b/src/include/k5-int.h @@ -203,6 +203,28 @@ typedef unsigned char u_char; #ifdef NEED_SOCKETS #include "port-sockets.h" + +/* Either size_t or int or unsigned int is probably right. Under + SunOS 4, it looks like int is desired, according to the accept man + page. */ +#ifndef HAVE_SOCKLEN_T +typedef int socklen_t; +#endif + +#if !defined (socklen) +/* size_t socklen (struct sockaddr *) */ +/* Should this return socklen_t instead? */ +# ifdef HAVE_SA_LEN +# define socklen(X) ((X)->sa_len) +# else +# ifdef KRB5_USE_INET6 +# define socklen(X) ((X)->sa_family == AF_INET6 ? sizeof (struct sockaddr_in6) : (X)->sa_family == AF_INET ? sizeof (struct sockaddr_in) : sizeof (struct sockaddr)) +# else +# define socklen(X) ((X)->sa_family == AF_INET ? sizeof (struct sockaddr_in) : sizeof (struct sockaddr)) +# endif +# endif +#endif + #else #ifndef SOCK_DGRAM struct sockaddr; |
