From 387a8ed33e68411c3dc0c9a77df47682d54db26c Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Tue, 19 Sep 2006 21:57:59 +0000 Subject: r18687: sync the lib/interfaces.c with lib/socket/netif.c from samba4 to hopefully fix the build on HPUX and Tru64 metze (This used to be commit aa8222c6a709a1538862878b89a17b893600b7e8) --- source3/lib/interfaces.c | 48 +++++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 23 deletions(-) (limited to 'source3/lib/interfaces.c') diff --git a/source3/lib/interfaces.c b/source3/lib/interfaces.c index dc30bdce47..c48a8d4d36 100644 --- a/source3/lib/interfaces.c +++ b/source3/lib/interfaces.c @@ -30,27 +30,21 @@ */ +#ifndef AUTOCONF_TEST +#include "config.h" +#endif + #include #include #include -#include -#include -#include +#include +#include #include #include #include -#include - -#ifdef AUTOCONF_TEST -struct iface_struct { - char name[16]; - struct in_addr ip; - struct in_addr netmask; -}; -#else -#include "config.h" -#include "interfaces.h" -#endif +#include +#include +#include #ifdef HAVE_SYS_TIME_H #include @@ -82,6 +76,12 @@ struct iface_struct { #define QSORT_CAST (int (*)(const void *, const void *)) #endif +#ifdef HAVE_NET_IF_H +#include +#endif + +#include "interfaces.h" + #if HAVE_IFACE_IFCONF /* this works for Linux 2.2, Solaris 2.5, SunOS4, HPUX 10.20, OSF1 @@ -154,7 +154,9 @@ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) return total; } -#elif HAVE_IFACE_IFREQ +#define _FOUND_IFACE_ANY +#endif /* HAVE_IFACE_IFCONF */ +#ifdef HAVE_IFACE_IFREQ #ifndef I_STR #include @@ -249,7 +251,9 @@ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) return total; } -#elif HAVE_IFACE_AIX +#define _FOUND_IFACE_ANY +#endif /* HAVE_IFACE_IFREQ */ +#ifdef HAVE_IFACE_AIX /**************************************************************************** this one is for AIX (tested on 4.2) @@ -284,7 +288,7 @@ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) i = ifc.ifc_len; while (i > 0 && total < max_interfaces) { - unsigned inc; + uint_t inc; inc = ifr->ifr_addr.sa_len; @@ -337,7 +341,9 @@ static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) return total; } -#else /* a dummy version */ +#define _FOUND_IFACE_ANY +#endif /* HAVE_IFACE_AIX */ +#ifndef _FOUND_IFACE_ANY static int _get_interfaces(struct iface_struct *ifaces, int max_interfaces) { return -1; @@ -358,8 +364,6 @@ static int iface_comp(struct iface_struct *i1, struct iface_struct *i2) /* this wrapper is used to remove duplicates from the interface list generated above */ -int get_interfaces(struct iface_struct *ifaces, int max_interfaces); - int get_interfaces(struct iface_struct *ifaces, int max_interfaces) { int total, i, j; @@ -388,8 +392,6 @@ int get_interfaces(struct iface_struct *ifaces, int max_interfaces) #ifdef AUTOCONF_TEST /* this is the autoconf driver to test get_interfaces() */ -#define MAX_INTERFACES 128 - int main() { struct iface_struct ifaces[MAX_INTERFACES]; -- cgit