Author: jelmer Date: 2007-12-17 05:53:37 +0000 (Mon, 17 Dec 2007) New Revision: 26487
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26487 Log: Cope with systems that don't have struct sockaddr.sa_len. Modified: branches/SAMBA_4_0/ branches/SAMBA_4_0/source/lib/replace/getifaddrs.c branches/SAMBA_4_0/source/lib/replace/getifaddrs.m4 Changeset: Property changes on: branches/SAMBA_4_0 ___________________________________________________________________ Name: bzr:revision-info ...skipped... Name: bzr:revision-id:v3-trunk0 ...skipped... Modified: branches/SAMBA_4_0/source/lib/replace/getifaddrs.c =================================================================== --- branches/SAMBA_4_0/source/lib/replace/getifaddrs.c 2007-12-17 05:44:38 UTC (rev 26486) +++ branches/SAMBA_4_0/source/lib/replace/getifaddrs.c 2007-12-17 05:53:37 UTC (rev 26487) @@ -53,10 +53,17 @@ struct sockaddr *sockaddr_dup(struct sockaddr *sa) { - struct sockaddr *ret = calloc(1, sa->sa_len); + struct sockaddr *ret; + socklen_t socklen; +#ifdef HAVE_SOCKADDR_SA_LEN + socklen = sa->sa_len; +#else + socklen = sizeof(struct sockaddr_storage); +#endif + ret = = calloc(1, socklen); if (ret == NULL) return NULL; - memcpy(ret, sa, sa->sa_len); + memcpy(ret, sa, socklen); return ret; } #endif Modified: branches/SAMBA_4_0/source/lib/replace/getifaddrs.m4 =================================================================== --- branches/SAMBA_4_0/source/lib/replace/getifaddrs.m4 2007-12-17 05:44:38 UTC (rev 26486) +++ branches/SAMBA_4_0/source/lib/replace/getifaddrs.m4 2007-12-17 05:53:37 UTC (rev 26487) @@ -1,5 +1,11 @@ AC_CHECK_HEADERS([ifaddrs.h]) +dnl Used when getifaddrs is not available +AC_CHECK_MEMBERS([struct sockaddr.sa_len], + [AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, [Whether struct sockaddr has a sa_len member])], + [], + [#include <sys/socket.h>]) + dnl test for getifaddrs and freeifaddrs AC_CACHE_CHECK([for getifaddrs and freeifaddrs],samba_cv_HAVE_GETIFADDRS,[ AC_TRY_COMPILE([
