diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2007-12-16 02:39:01 +0100 |
---|---|---|
committer | Michael Adam <obnox@samba.org> | 2008-02-19 21:55:09 +0100 |
commit | 2235ffe2f754da543b796446377b1419bf046204 (patch) | |
tree | c7664f78e8244c7b8e6f931a701f80d655f74eba /source3/lib/replace/system/network.h | |
parent | 27b711414f09ccad140e6ef82d8d47c9cb4ba94a (diff) | |
download | samba-2235ffe2f754da543b796446377b1419bf046204.tar.gz samba-2235ffe2f754da543b796446377b1419bf046204.tar.bz2 samba-2235ffe2f754da543b796446377b1419bf046204.zip |
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)
(This used to be commit 789bf2d36bd728cc68b58cfb1e9570b90ca09af7)
Diffstat (limited to 'source3/lib/replace/system/network.h')
-rw-r--r-- | source3/lib/replace/system/network.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/source3/lib/replace/system/network.h b/source3/lib/replace/system/network.h index aff8a841da..61be51744c 100644 --- a/source3/lib/replace/system/network.h +++ b/source3/lib/replace/system/network.h @@ -6,6 +6,7 @@ networking system include wrappers Copyright (C) Andrew Tridgell 2004 + Copyright (C) Jelmer Vernooij 2007 ** NOTE! The following LGPL license applies to the replace ** library. This does NOT imply that all of Samba is released @@ -97,6 +98,30 @@ int rep_inet_pton(int af, const char *src, void *dst); const char *rep_inet_ntop(int af, const void *src, char *dst, socklen_t size); #endif +#ifdef HAVE_IFADDRS_H +#include <ifaddrs.h> +#endif + +#ifndef HAVE_STRUCT_IFADDRS +struct ifaddrs { + struct ifaddrs *ifa_next; /* Pointer to next struct */ + char *ifa_name; /* Interface name */ + u_int ifa_flags; /* Interface flags */ + struct sockaddr *ifa_addr; /* Interface address */ + struct sockaddr *ifa_netmask; /* Interface netmask */ + struct sockaddr *ifa_dstaddr; /* P2P interface destination */ + void *ifa_data; /* Address specific data */ +}; +#endif + +#ifndef HAVE_GETIFADDRS +int rep_getifaddrs(struct ifaddrs **); +#endif + +#ifndef HAVE_FREEIFADDRS +int rep_freeifaddrs(struct ifaddrs **); +#endif + /* * Some systems have getaddrinfo but not the * defines needed to use it. |