move socklen_t, socklen handling from krb5 library to include/k5-int.h
authorKen Raeburn <raeburn@mit.edu>
Thu, 26 Apr 2001 03:47:29 +0000 (03:47 +0000)
committerKen Raeburn <raeburn@mit.edu>
Thu, 26 Apr 2001 03:47:29 +0000 (03:47 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@13195 dc483132-0cff-0310-8789-dd5450dbe970

src/ChangeLog
src/acconfig.h
src/include/ChangeLog
src/include/configure.in
src/include/k5-int.h
src/lib/krb5/ChangeLog
src/lib/krb5/configure.in
src/lib/krb5/os/ChangeLog
src/lib/krb5/os/localaddr.c

index 89d233f281b09060c026b7b4d14f43eae78a6c3a..7ae63a661356370bac245b43c86e752cdc69eb7e 100644 (file)
@@ -1,3 +1,8 @@
+2001-04-25  Ken Raeburn  <raeburn@mit.edu>
+
+       * acconfig.h (HAVE_SOCKLEN_T): Add.
+       (HAS_VOID_TYPE): Delete.
+
 2001-04-17  Ken Raeburn  <raeburn@mit.edu>
 
        * Makefile.in (unixmac): Target deleted.
index 72a078313764a016e4ed426e58ea8b4f36e7b752..e71089a5f62acf1c356f7229db990338d7e9d514 100644 (file)
@@ -7,7 +7,6 @@
    handle it on some systems.  */
 
 #undef ANSI_STDIO
-#undef HAS_VOID_TYPE
 #undef KRB5_NO_PROTOTYPES
 #undef KRB5_PROVIDE_PROTOTYPES
 #undef KRB5_NO_NESTED_PROTOTYPES
@@ -26,6 +25,9 @@
 /* Define if struct sockaddr and friends (sockaddr_in etc) have the
    sa_len field.  */
 #undef HAVE_SA_LEN
+/* Define if there is a socklen_t type; if not, size_t is probably
+   what we should use.  */
+#undef HAVE_SOCKLEN_T
 
 /* Define if MIT Project Athena default configuration should be used */
 #undef KRB5_ATHENA_COMPAT
index 1159f3dfdc4d36a179f91ebb168f267f1a2f29ff..88434bc2e68a8ffc653e33d46ccb83b7ac937a70 100644 (file)
@@ -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):
index cb002fb1cba9ea71585d738e82a34f468450cad0..faaea125b64870387dc97f3a4c3aba28dbb6d1ac 100644 (file)
@@ -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),)
index d2976a4888b6fd0a9325e212680338227df9422a..fa1ffd4a5ce438f6412aefdb71b5d3be6c882a44 100644 (file)
@@ -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;
index 643736d1d6d5738e9f508687cca33d377e55014a..0c07e50f6a87002ac54e249b1e50006708f7a32a 100644 (file)
@@ -1,3 +1,7 @@
+2001-04-25  Ken Raeburn  <raeburn@mit.edu>
+
+       * configure.in: Moved test for socklen_t to include directory.
+
 2001-03-05  Tom Yu  <tlyu@mit.edu>
 
        * configure.in: Check for sys/filio.h for FIONBIO.
index a12f8ddbaf8aa2af332dc63d66c1e67367015762..88ff70e1eddd8e01c1eac48749689923ffcca2b3 100644 (file)
@@ -8,19 +8,6 @@ AC_TYPE_UID_T
 AC_TYPE_OFF_T
 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
 HAS_ANSI_VOLATILE
 AC_HEADER_STDARG
 AC_CHECK_HEADERS(unistd.h paths.h regex.h regexp.h regexpr.h fcntl.h memory.h ifaddrs.h sys/filio.h)
index ceff3a62c8c8c49942bb9533cbea533fd6672057..5ae26110fb156f7fb7a1629c6db43d163619b72c 100644 (file)
@@ -1,3 +1,8 @@
+2001-04-25  Ken Raeburn  <raeburn@mit.edu>
+
+       * localaddr.c (socklen_t, socklen): Deleted; definitions now in
+       k5-int.h instead.
+
 2001-03-31  Ken Raeburn  <raeburn@mit.edu>
 
        * t_gifconf.c: New file.
index 82c5863f98ca89ceabba1689b210858666bfbf1c..1fc558d581de542b331f384be7519d094fe74f04 100644 (file)
@@ -227,30 +227,6 @@ get_ifconf (int s, size_t *lenp, /*@out@*/ char *buf)
     return ret;
 }
 
-#ifndef HAVE_SOCKLEN_T
-typedef size_t socklen_t;
-#endif
-
-static size_t
-socklen (const struct sockaddr *sa)
-     /*@*/
-{
-#ifdef HAVE_SA_LEN
-    return sa->sa_len;
-#else
-    switch (sa->sa_family) {
-    case AF_INET:
-       return sizeof (struct sockaddr_in);
-#ifdef KRB5_USE_INET6
-    case AF_INET6:
-       return sizeof (struct sockaddr_in6);
-#endif
-    default:
-       return sizeof (struct sockaddr);
-    }
-#endif
-}
-
 /* Return value is errno if internal stuff failed, otherwise zero,
    even in the case where a called function terminated the iteration.