[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-2458-g69b2ebc

Michael Adam obnox at samba.org
Tue Feb 19 21:47:29 GMT 2008


The branch, v3-2-test has been updated
       via  69b2ebc797fa986bf395f4d045ea663240e9ec2c (commit)
       via  12e5b9b406d111834c013cbbfe63b759a969ec8e (commit)
       via  bc523382aef16b1260799000650bbebe132799eb (commit)
       via  b4a2ec01fc3c8174cba2a7bda876270fcce90491 (commit)
       via  ccfb04d18516e0aca88ea0a96afe119175bddba7 (commit)
       via  57587e49f5942b81508b40e3c9a67e7536f2271d (commit)
       via  f2f552106820d1a8f07bccc1a3ad9b45582c8b30 (commit)
       via  839d128a42aa624e3cd978700059f947022ee733 (commit)
       via  d9c3b27c3fafb3adb7bc6521f5be97aec7fe8bfc (commit)
       via  ce222d07ba73b34894454e4fcb43046f0f22c0e7 (commit)
       via  556b6b9a2fe5dd9da85b1605d91a7216a6c6d308 (commit)
       via  a2d6f6b4ae7fb6711d4228b9e255eebb6bf344bd (commit)
       via  3f9c0c210022905c7811b2e07b3b655929daf930 (commit)
       via  789bf2d36bd728cc68b58cfb1e9570b90ca09af7 (commit)
      from  d1db2b78c9dacddc0e24304624a6a0d0a817f774 (commit)

http://gitweb.samba.org/?samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 69b2ebc797fa986bf395f4d045ea663240e9ec2c
Author: Michael Adam <obnox at samba.org>
Date:   Tue Feb 19 22:29:34 2008 +0100

    libreplace: Remove double item in case statement.
    
    This was by accident introduced in cherry-pick commit
    7a7dcd9b1265b8f031c9a5e9c4cfa89216827a28: This tiny portion
    had already been ported in 64ff1dad8664f14030c7d78c252d946216798a88.
    
    MIchael

commit 12e5b9b406d111834c013cbbfe63b759a969ec8e
Author: Michael Adam <obnox at samba.org>
Date:   Tue Feb 19 17:25:42 2008 +0100

    Remove relict SAMBA_CONFIGURE_CPPFLAGS from lib/replace.
    
    Michael
    (cherry picked from commit d10cbb533c18a6d74160477d34a81bbd4cd6c7c8)

commit bc523382aef16b1260799000650bbebe132799eb
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Thu Dec 20 17:07:31 2007 +0100

    r26554: Fix test for getifaddr on FreeBSD. Patch by Timur Bakeyev.
    (cherry picked from commit 37c7b65546190bdce40cb48435cc4fd51d89a124)

commit b4a2ec01fc3c8174cba2a7bda876270fcce90491
Author: James Peach <jpeach at samba.org>
Date:   Thu Dec 20 16:35:42 2007 +0100

    r26551: Make sure NULL is defined before using it to test for getifaddrs().
    
    Patch from Timur I. Bakeyev <timur at com.bat.ru>.
    (cherry picked from commit 188156228b53c4bbc9c18c6ff1a0d3c6d0ba5fcb)

commit ccfb04d18516e0aca88ea0a96afe119175bddba7
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Dec 17 12:27:59 2007 +0100

    r26507: Fix function signature for freeifaddrs.
    (cherry picked from commit cc873bdd2e86e5b380c3056810ccc5ad98372f7c)

commit 57587e49f5942b81508b40e3c9a67e7536f2271d
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Dec 17 08:20:29 2007 +0100

    r26497: Fix return type for freeifaddrs().
    (cherry picked from commit 8c65053f51330bb55a81572264eefbcc56029dc1)

commit f2f552106820d1a8f07bccc1a3ad9b45582c8b30
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Dec 17 07:45:05 2007 +0100

    r26495: Add defines for getifaddrs/freeifaddrs.
    (cherry picked from commit c9e5a3078f7baa83743658d5648f0eefdeb05d2f)

commit 839d128a42aa624e3cd978700059f947022ee733
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Dec 17 06:57:30 2007 +0100

    r26492: Some hosts have a define called ifa_dstaddr.
    (cherry picked from commit c4cd935ee783b2f4939e2c481bbdb1bbdb9190cd)

commit d9c3b27c3fafb3adb7bc6521f5be97aec7fe8bfc
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Dec 17 06:30:50 2007 +0100

    r26491: Fix syntax.
    (cherry picked from commit 2513230e286179747bb84e4e87121b80bea8f3f0)

commit ce222d07ba73b34894454e4fcb43046f0f22c0e7
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Mon Dec 17 05:53:37 2007 +0100

    r26487: Cope with systems that don't have struct sockaddr.sa_len.
    (cherry picked from commit 56080469ab28ae5a2f456cced34814d9c33480c6)

commit 556b6b9a2fe5dd9da85b1605d91a7216a6c6d308
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Dec 16 14:50:11 2007 +0100

    r26470: Update README.
    (cherry picked from commit 51a78cfc3e72d6b32ef6c7a6079165a36863b908)

commit a2d6f6b4ae7fb6711d4228b9e255eebb6bf344bd
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Dec 16 03:22:13 2007 +0100

    r26469: Fix paths, only include IPv4 addresses for now.
    (cherry picked from commit fa9e3b6fa871b7541878f836ea54e882e614a3cf)

commit 3f9c0c210022905c7811b2e07b3b655929daf930
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Dec 16 02:49:52 2007 +0100

    r26468: Match getifaddrs more closely, add trivial test.
    (cherry picked from commit 92898c043b5a2649a2e423d02bcdaea78ae55737)

commit 789bf2d36bd728cc68b58cfb1e9570b90ca09af7
Author: Jelmer Vernooij <jelmer at samba.org>
Date:   Sun Dec 16 02:39:01 2007 +0100

    r26467: Use getifaddrs() for interface enumeration and provide replacements for platforms that don't have it in lib/replace.
    
    (lib/replace part of 9b4924fbd8619033c55b4c6e2589da247332e7db - Michael)

-----------------------------------------------------------------------

Summary of changes:
 source/lib/replace/README           |    2 +
 source/lib/replace/getifaddrs.c     |  392 +++++++++++++++++++++++++++++++++++
 source/lib/replace/getifaddrs.m4    |   98 +++++++++
 source/lib/replace/libreplace.m4    |    1 +
 source/lib/replace/libreplace_ld.m4 |    4 -
 source/lib/replace/replace.h        |   10 +
 source/lib/replace/system/network.h |   26 +++
 source/lib/replace/test/testsuite.c |   20 ++
 8 files changed, 549 insertions(+), 4 deletions(-)
 create mode 100644 source/lib/replace/getifaddrs.c
 create mode 100644 source/lib/replace/getifaddrs.m4


Changeset truncated at 500 lines:

diff --git a/source/lib/replace/README b/source/lib/replace/README
index c61f78a..268a1b1 100644
--- a/source/lib/replace/README
+++ b/source/lib/replace/README
@@ -60,6 +60,8 @@ getaddrinfo
 freeaddrinfo
 getnameinfo
 gai_strerror
+getifaddrs
+freeifaddrs
 
 Types:
 bool
diff --git a/source/lib/replace/getifaddrs.c b/source/lib/replace/getifaddrs.c
new file mode 100644
index 0000000..4037d64
--- /dev/null
+++ b/source/lib/replace/getifaddrs.c
@@ -0,0 +1,392 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Samba utility functions
+   Copyright (C) Andrew Tridgell 1998
+   Copyright (C) Jeremy Allison 2007
+   Copyright (C) Jelmer Vernooij <jelmer at samba.org> 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "replace.h"
+#include "system/network.h"
+
+#include <unistd.h>
+#include <stdio.h>
+#include <sys/types.h>
+
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+
+#ifndef SIOCGIFCONF
+#ifdef HAVE_SYS_SOCKIO_H
+#include <sys/sockio.h>
+#endif
+#endif
+
+#ifdef HAVE_IFACE_GETIFADDRS
+#define _FOUND_IFACE_ANY
+#else
+
+void rep_freeifaddrs(struct ifaddrs *ifp)
+{
+	free(ifp->ifa_name);
+	free(ifp->ifa_addr);
+	free(ifp->ifa_netmask);
+	free(ifp->ifa_dstaddr);
+	if (ifp->ifa_next != NULL)
+		freeifaddrs(ifp->ifa_next);
+	free(ifp);
+}
+
+static struct sockaddr *sockaddr_dup(struct sockaddr *sa)
+{
+	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, socklen);
+	return ret;
+}
+#endif
+
+#if HAVE_IFACE_IFCONF
+
+/* this works for Linux 2.2, Solaris 2.5, SunOS4, HPUX 10.20, OSF1
+   V4.0, Ultrix 4.4, SCO Unix 3.2, IRIX 6.4 and FreeBSD 3.2.
+
+   It probably also works on any BSD style system.  */
+
+int rep_getifaddrs(struct ifaddrs **ifap)
+{
+	struct ifconf ifc;
+	char buff[8192];
+	int fd, i, n;
+	struct ifreq *ifr=NULL;
+	int total = 0;
+	struct in_addr ipaddr;
+	struct in_addr nmask;
+	char *iname;
+	struct ifaddrs *curif, *lastif;
+
+	*ifap = NULL;
+
+	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
+		return -1;
+	}
+  
+	ifc.ifc_len = sizeof(buff);
+	ifc.ifc_buf = buff;
+
+	if (ioctl(fd, SIOCGIFCONF, &ifc) != 0) {
+		close(fd);
+		return -1;
+	} 
+
+	ifr = ifc.ifc_req;
+  
+	n = ifc.ifc_len / sizeof(struct ifreq);
+
+	/* Loop through interfaces, looking for given IP address */
+	for (i=n-1;i>=0 && total < max_interfaces;i--) {
+		if (ioctl(fd, SIOCGIFADDR, &ifr[i]) != 0) {
+			freeifaddrs(*ifap);
+		}
+
+		curif = calloc(1, sizeof(struct ifaddrs));
+		if (lastif == NULL) {
+			*ifap = curif;
+		} else {
+			lastif->ifa_next = (*ifap);
+		}
+
+		curif->ifa_name = strdup(ifr[i].ifr_name);
+		curif->ifa_addr = sockaddr_dup(&ifr[i].ifr_addr);
+		curif->ifa_dstaddr = NULL;
+		curif->ifa_data = NULL;
+		curif->ifa_next = NULL;
+		curif->ifa_netmask = NULL;
+
+		if (ioctl(fd, SIOCGIFFLAGS, &ifr[i]) != 0) {
+			freeifaddrs(*ifap);
+			return -1;
+		}  
+
+		curif->ifa_flags = ifr[i].ifr_flags;
+
+		if (ioctl(fd, SIOCGIFNETMASK, &ifr[i]) != 0) {
+			freeifaddrs(*ifap);
+			return -1;
+		}  
+
+		curif->ifa_netmask = sockaddr_dup(&ifr[i].ifr_addr);
+
+		lastif = curif;
+	}
+
+	close(fd);
+
+	return 0;
+}  
+
+#define _FOUND_IFACE_ANY
+#endif /* HAVE_IFACE_IFCONF */
+#ifdef HAVE_IFACE_IFREQ
+
+#ifndef I_STR
+#include <sys/stropts.h>
+#endif
+
+/****************************************************************************
+this should cover most of the streams based systems
+Thanks to Andrej.Borsenkow at mow.siemens.ru for several ideas in this code
+****************************************************************************/
+int rep_getifaddrs(struct ifaddrs **ifap)
+{
+	struct ifreq ifreq;
+	struct strioctl strioctl;
+	char buff[8192];
+	int fd, i, n;
+	struct ifreq *ifr=NULL;
+	int total = 0;
+	struct in_addr ipaddr;
+	struct in_addr nmask;
+	char *iname;
+	struct ifaddrs *curif;
+
+	*ifap = NULL;
+
+	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
+		return -1;
+	}
+  
+	strioctl.ic_cmd = SIOCGIFCONF;
+	strioctl.ic_dp  = buff;
+	strioctl.ic_len = sizeof(buff);
+	if (ioctl(fd, I_STR, &strioctl) < 0) {
+		close(fd);
+		return -1;
+	} 
+
+	/* we can ignore the possible sizeof(int) here as the resulting
+	   number of interface structures won't change */
+	n = strioctl.ic_len / sizeof(struct ifreq);
+
+	/* we will assume that the kernel returns the length as an int
+           at the start of the buffer if the offered size is a
+           multiple of the structure size plus an int */
+	if (n*sizeof(struct ifreq) + sizeof(int) == strioctl.ic_len) {
+		ifr = (struct ifreq *)(buff + sizeof(int));  
+	} else {
+		ifr = (struct ifreq *)buff;  
+	}
+
+	/* Loop through interfaces */
+
+	for (i = 0; i<n && total < max_interfaces; i++) {
+		ifreq = ifr[i];
+  
+		curif = calloc(1, sizeof(struct ifaddrs));
+		if (lastif == NULL) {
+			*ifap = curif;
+		} else {
+			lastif->ifa_next = (*ifap);
+		}
+
+		strioctl.ic_cmd = SIOCGIFFLAGS;
+		strioctl.ic_dp  = (char *)&ifreq;
+		strioctl.ic_len = sizeof(struct ifreq);
+		if (ioctl(fd, I_STR, &strioctl) != 0) {
+			freeifaddrs(*ifap);
+			return -1;
+		}
+
+		curif->ifa_flags = ifreq.ifr_flags;
+		
+		strioctl.ic_cmd = SIOCGIFADDR;
+		strioctl.ic_dp  = (char *)&ifreq;
+		strioctl.ic_len = sizeof(struct ifreq);
+		if (ioctl(fd, I_STR, &strioctl) != 0) {
+			freeifaddrs(*ifap);
+			return -1;
+		}
+
+		curif->ifa_name = strdup(ifreq.ifr_name);
+		curif->ifa_addr = sockaddr_dup(&ifreq.ifr_addr);
+		curif->ifa_dstaddr = NULL;
+		curif->ifa_data = NULL;
+		curif->ifa_next = NULL;
+		curif->ifa_netmask = NULL;
+
+		strioctl.ic_cmd = SIOCGIFNETMASK;
+		strioctl.ic_dp  = (char *)&ifreq;
+		strioctl.ic_len = sizeof(struct ifreq);
+		if (ioctl(fd, I_STR, &strioctl) != 0) {
+			freeifaddrs(*ifap);
+			return -1;
+		}
+
+		curif->ifa_netmask = sockaddr_dup(&ifreq.ifr_addr);
+
+		lastif = curif;
+	}
+
+	close(fd);
+
+	return 0;
+}
+
+#define _FOUND_IFACE_ANY
+#endif /* HAVE_IFACE_IFREQ */
+#ifdef HAVE_IFACE_AIX
+
+/****************************************************************************
+this one is for AIX (tested on 4.2)
+****************************************************************************/
+int rep_getifaddrs(struct ifaddrs **ifap)
+{
+	char buff[8192];
+	int fd, i;
+	struct ifconf ifc;
+	struct ifreq *ifr=NULL;
+	struct in_addr ipaddr;
+	struct in_addr nmask;
+	char *iname;
+	int total = 0;
+	struct ifaddrs *curif, *lastif;
+
+	*ifap = NULL;
+
+	if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) == -1) {
+		return -1;
+	}
+
+	ifc.ifc_len = sizeof(buff);
+	ifc.ifc_buf = buff;
+
+	if (ioctl(fd, SIOCGIFCONF, &ifc) != 0) {
+		close(fd);
+		return -1;
+	}
+
+	ifr = ifc.ifc_req;
+
+	/* Loop through interfaces */
+	i = ifc.ifc_len;
+
+	while (i > 0) {
+		uint_t inc;
+
+		inc = ifr->ifr_addr.sa_len;
+
+		if (ioctl(fd, SIOCGIFADDR, ifr) != 0) {
+			freeaddrinfo(*ifap);
+			return -1;
+		}
+
+		curif = calloc(1, sizeof(struct ifaddrs));
+		if (lastif == NULL) {
+			*ifap = curif;
+		} else {
+			lastif->ifa_next = (*ifap);
+		}
+
+		curif->ifa_name = strdup(ifr->ifr_name);
+		curif->ifa_addr = sockaddr_dup(&ifr->ifr_addr);
+		curif->ifa_dstaddr = NULL;
+		curif->ifa_data = NULL;
+		curif->ifa_netmask = NULL;
+		curif->ifa_next = NULL;
+
+		if (ioctl(fd, SIOCGIFFLAGS, ifr) != 0) {
+			freeaddrinfo(*ifap);
+			return -1;
+		}
+
+		curif->ifa_flags = ifr->ifr_flags;
+
+		if (ioctl(fd, SIOCGIFNETMASK, ifr) != 0) {
+			freeaddrinfo(*ifap);
+			return -1;
+		}
+
+		curif->ifa_netmask = sockaddr_dup(&ifr->ifr_addr);
+
+		lastif = curif;
+
+	next:
+		/*
+		 * Patch from Archie Cobbs (archie at whistle.com).  The
+		 * addresses in the SIOCGIFCONF interface list have a
+		 * minimum size. Usually this doesn't matter, but if
+		 * your machine has tunnel interfaces, etc. that have
+		 * a zero length "link address", this does matter.  */
+
+		if (inc < sizeof(ifr->ifr_addr))
+			inc = sizeof(ifr->ifr_addr);
+		inc += IFNAMSIZ;
+
+		ifr = (struct ifreq*) (((char*) ifr) + inc);
+		i -= inc;
+	}
+
+	close(fd);
+	return 0;
+}
+
+#define _FOUND_IFACE_ANY
+#endif /* HAVE_IFACE_AIX */
+#ifndef _FOUND_IFACE_ANY
+int rep_getifaddrs(struct ifaddrs **ifap)
+{
+	errno = ENOSYS;
+	return -1;
+}
+#endif
+
+#ifdef AUTOCONF_TEST
+/* this is the autoconf driver to test get_interfaces() */
+
+ int main()
+{
+	struct ifaddrs *ifs = NULL;
+	int ret;
+	
+	ret = getifaddrs(&ifs);
+	if (ret != 0) {
+		perror("getifaddrs() failed");
+		return 1;
+	}
+
+	while (ifs) {
+		printf("%-10s ", ifs->ifa_name);
+		if (ifs->ifa_addr != NULL && 
+		    ifs->ifa_addr->sa_family == AF_INET) {
+			printf("IP=%s ", inet_ntoa(((struct sockaddr_in *)ifs->ifa_addr)->sin_addr));
+			if (ifs->ifa_netmask != NULL)
+				printf("NETMASK=%s", inet_ntoa(((struct sockaddr_in *)ifs->ifa_netmask)->sin_addr));
+		}
+		printf("\n");
+		ifs = ifs->ifa_next;
+	}
+	return 0;
+}
+#endif
diff --git a/source/lib/replace/getifaddrs.m4 b/source/lib/replace/getifaddrs.m4
new file mode 100644
index 0000000..4259d1a
--- /dev/null
+++ b/source/lib/replace/getifaddrs.m4
@@ -0,0 +1,98 @@
+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([
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <ifaddrs.h>
+#include <netdb.h>],
+[
+struct ifaddrs *ifp = NULL;
+int ret = getifaddrs (&ifp);
+freeifaddrs(ifp);
+],
+samba_cv_HAVE_GETIFADDRS=yes,samba_cv_HAVE_GETIFADDRS=no)])
+if test x"$samba_cv_HAVE_GETIFADDRS" = x"yes"; then
+    AC_DEFINE(HAVE_GETIFADDRS,1,[Whether the system has getifaddrs])
+    AC_DEFINE(HAVE_FREEIFADDRS,1,[Whether the system has freeifaddrs])
+	AC_DEFINE(HAVE_STRUCT_IFADDRS,1,[Whether struct ifaddrs is available])
+fi
+
+##################
+# look for a method of finding the list of network interfaces
+#
+# This tests need LIBS="$NSL_LIBS $SOCKET_LIBS"
+#
+old_LIBS=$LIBS
+LIBS="$NSL_LIBS $SOCKET_LIBS"
+iface=no;
+##################
+# look for a method of finding the list of network interfaces
+iface=no;
+AC_CACHE_CHECK([for iface getifaddrs],samba_cv_HAVE_IFACE_GETIFADDRS,[
+AC_TRY_RUN([
+#define NO_CONFIG_H 1
+#define HAVE_IFACE_GETIFADDRS 1
+#define AUTOCONF_TEST 1
+#include "$libreplacedir/replace.c"
+#include "$libreplacedir/getifaddrs.c"],
+           samba_cv_HAVE_IFACE_GETIFADDRS=yes,samba_cv_HAVE_IFACE_GETIFADDRS=no,samba_cv_HAVE_IFACE_GETIFADDRS=cross)])
+if test x"$samba_cv_HAVE_IFACE_GETIFADDRS" = x"yes"; then
+    iface=yes;AC_DEFINE(HAVE_IFACE_GETIFADDRS,1,[Whether iface getifaddrs is available])
+else
+	LIBREPLACEOBJ="${LIBREPLACEOBJ} getifaddrs.o"
+fi
+
+
+if test $iface = no; then
+AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
+AC_TRY_RUN([
+#define HAVE_IFACE_AIX 1
+#define AUTOCONF_TEST 1
+#undef _XOPEN_SOURCE_EXTENDED
+#include "$libreplacedir/getifaddrs.c"],
+           samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
+if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
+    iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
+fi
+fi
+
+
+if test $iface = no; then
+AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
+AC_TRY_RUN([
+#define HAVE_IFACE_IFCONF 1
+#define AUTOCONF_TEST 1
+#include "$libreplacedir/getifaddrs.c"],
+           samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
+if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
+    iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
+fi


-- 
Samba Shared Repository


More information about the samba-cvs mailing list