summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/ChangeLog8
-rw-r--r--src/include/configure.in25
-rw-r--r--src/include/k5-int.h22
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;