From 3d92f97722b1e97f46ba214c5e1198d8a540971d Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Tue, 22 Jan 2008 20:42:47 +0000 Subject: [PATCH] Merged revisions 99643 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r99643 | tilghman | 2008-01-22 14:34:55 -0600 (Tue, 22 Jan 2008) | 2 lines Fix the defines for OS X (and Solaris, too) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99646 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/acl.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/main/acl.c b/main/acl.c index 7df1501..810ec80 100644 --- a/main/acl.c +++ b/main/acl.c @@ -29,11 +29,16 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/network.h" +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__Darwin__) +#include +#include +#endif + #if defined(SOLARIS) #include #endif -#if defined(__linux__) +#if defined(__Darwin__) || defined(__linux__) #include #endif @@ -103,23 +108,23 @@ static void score_address(const struct sockaddr_in *sin, struct in_addr *best_ad static int get_local_address(struct in_addr *ourip) { int s, res = -1; -#ifdef _SOLARIS +#ifdef SOLARIS struct lifreq *ifr = NULL; struct lifnum ifn; struct lifconf ifc; struct sockaddr_in *sa; char *buf = NULL; int bufsz, x; -#endif /* _SOLARIS */ -#if defined(_BSD) || defined(__linux__) +#endif /* SOLARIS */ +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) struct ifaddrs *ifap, *ifaphead; int rtnerr; const struct sockaddr_in *sin; -#endif /* defined(_BSD) || defined(_LINUX) */ +#endif /* BSD_OR_LINUX */ struct in_addr best_addr = { 0, }; int best_score = -100; -#if defined(_BSD) || defined(__linux__) +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) rtnerr = getifaddrs(&ifaphead); if (rtnerr) { perror(NULL); @@ -130,7 +135,7 @@ static int get_local_address(struct in_addr *ourip) s = socket(AF_INET, SOCK_STREAM, 0); if (s > 0) { -#if defined(_BSD) || defined(__linux__) +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) for (ifap = ifaphead; ifap; ifap = ifap->ifa_next) { if (ifap->ifa_addr->sa_family == AF_INET) { @@ -142,10 +147,10 @@ static int get_local_address(struct in_addr *ourip) break; } } -#endif /* _BSD */ +#endif /* BSD_OR_LINUX */ /* There is no reason whatsoever that this shouldn't work on Linux or BSD also. */ -#ifdef _SOLARIS +#ifdef SOLARIS /* Get a count of interfaces on the machine */ ifn.lifn_family = AF_INET; ifn.lifn_flags = 0; @@ -183,13 +188,13 @@ static int get_local_address(struct in_addr *ourip) } free(buf); -#endif /* _SOLARIS */ +#endif /* SOLARIS */ close(s); } -#if defined(_BSD) || defined(__linux__) +#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) freeifaddrs(ifaphead); -#endif +#endif /* BSD_OR_LINUX */ if (res == 0 && ourip) memcpy(ourip, &best_addr, sizeof(*ourip)); -- 1.7.9.5