On Wed, Feb 25, 2004 at 07:32:52PM -0800, Wayne Davison wrote:
> So, it looks like we need 2 configure tests and separate defines for
> sa_len and sin_len.

How about the appended patch?  This applies to the very latest CVS
source and would require the running of "autoconf" and "autoheader"
after applying it.

..wayne..
--- clientname.c        11 Jan 2003 02:05:56 -0000      1.15
+++ clientname.c        26 Feb 2004 03:51:43 -0000
@@ -195,7 +195,7 @@ void client_sockaddr(int fd,
                memset(sin, 0, sizeof(*sin));
                sin->sin_family = AF_INET;
                *ss_len = sizeof(struct sockaddr_in);
-#ifdef HAVE_SOCKADDR_LEN
+#ifdef HAVE_SOCKADDR_SIN_LEN
                sin->sin_len = *ss_len;
 #endif
                sin->sin_port = sin6.sin6_port;
--- configure.in        26 Feb 2004 04:03:35 -0000      1.185
+++ configure.in        26 Feb 2004 04:04:54 -0000
@@ -388,9 +388,16 @@ else
        AC_LIBOBJ(lib/getnameinfo)
 fi
 
-
 AC_CHECK_MEMBER([struct sockaddr.sa_len],
-               [ AC_DEFINE(HAVE_SOCKADDR_LEN, 1, [Do we have sockaddr.sa_len?]) ],
+               [ AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Do we have sockaddr.sa_len?]) ],
+               [],
+               [
+#include <sys/types.h>
+#include <sys/socket.h>
+])
+
+AC_CHECK_MEMBER([struct sockaddr.sin_len],
+               [ AC_DEFINE(HAVE_SOCKADDR_SIN_LEN, 1, [Do we have sockaddr.sin_len?]) 
],
                [],
                [
 #include <sys/types.h>
--- socket.c    20 Jan 2004 04:57:15 -0000      1.92
+++ socket.c    26 Feb 2004 03:53:00 -0000
@@ -698,7 +698,7 @@ static int socketpair_tcp(int fd[2])
                goto failed;
 
        memset(&sock2, 0, sizeof sock2);
-#ifdef HAVE_SOCKADDR_LEN
+#ifdef HAVE_SOCKADDR_SIN_LEN
        sock2.sin_len = sizeof sock2;
 #endif
        sock2.sin_family = PF_INET;
--- lib/addrinfo.h      5 Dec 2001 13:19:16 -0000       1.8
+++ lib/addrinfo.h      26 Feb 2004 03:52:26 -0000
@@ -111,7 +111,7 @@ extern char *gai_strerror(int);
 
 #ifndef HAVE_SOCKADDR_STORAGE
 struct sockaddr_storage {
-#ifdef HAVE_SOCKADDR_LEN
+#ifdef HAVE_SOCKADDR_SA_LEN
        uchar           ss_len;         /* address length */
        uchar           ss_family;      /* address family */
 #else
--- lib/getaddrinfo.c   10 Jan 2003 22:38:25 -0000      1.17
+++ lib/getaddrinfo.c   26 Feb 2004 03:52:36 -0000
@@ -161,7 +161,7 @@ static int get_ai(struct addrinfo ** to_
        (*to_ai)->ai_addr = (struct sockaddr *)((*to_ai) + 1);
        memset((*to_ai)->ai_addr, 0, (afd)->a_socklen);
        (*to_ai)->ai_addrlen = (afd)->a_socklen;
-#if HAVE_SOCKADDR_LEN
+#if HAVE_SOCKADDR_SA_LEN
        (*to_ai)->ai_addr->sa_len= (afd)->a_socklen;
 #endif
        (*to_ai)->ai_addr->sa_family = (*to_ai)->ai_family = (afd)->a_af;
--- lib/getnameinfo.c   10 Jan 2003 22:38:25 -0000      1.11
+++ lib/getnameinfo.c   26 Feb 2004 03:52:48 -0000
@@ -99,9 +99,9 @@ getnameinfo(sa, salen, host, hostlen, se
        if (sa == NULL)
                return ENI_NOSOCKET;
 
-#ifdef HAVE_SOCKADDR_LEN
+#ifdef HAVE_SOCKADDR_SA_LEN
        if (sa->sa_len != salen) return ENI_SALEN;
-#endif /* HAVE_SOCKADDR_LEN */
+#endif
        
        family = sa->sa_family;
        for (i = 0; afdl[i].a_af; i++)
-- 
To unsubscribe or change options: http://lists.samba.org/mailman/listinfo/rsync
Before posting, read: http://www.catb.org/~esr/faqs/smart-questions.html

Reply via email to