summaryrefslogtreecommitdiff
path: root/main
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2010-08-15 13:08:45 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2010-08-15 13:08:45 +0000
commit4a8fdd6aa1bff7e2d5f452e3465d242eeb7981b1 (patch)
tree032ed446ea3856ef45e8e947ba0b9943c25ce2de /main
parent557ad25f0773ae488497562a1a2d5699d7c3e9c3 (diff)
Support for GNU/kFreeBSD
kFreeBSD is GNU (with glibc) on to of a FreeBSD kernel. See http://glibc-bsd.alioth.debian.org/porting/PORTING This patch gets Asterisk close to building on Debian kFreeBSD i386, mainly by adding an extra test for __GLIBC__ in one or two (or more) places. OSARCH is set to 'kfreebsd-gnu' DAHDI support (and support for chan_vpb) was not tested. Review: https://reviewboard.asterisk.org/r/858/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@282397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r--main/Makefile2
-rw-r--r--main/acl.c6
-rw-r--r--main/netsock.c4
3 files changed, 7 insertions, 5 deletions
diff --git a/main/Makefile b/main/Makefile
index af294dda6..0bb7c97c0 100644
--- a/main/Makefile
+++ b/main/Makefile
@@ -34,7 +34,7 @@ AST_LIBS += $(OPENSSL_LIB)
AST_LIBS += $(BKTR_LIB)
AST_LIBS += $(LIBXML2_LIB)
-ifneq ($(findstring $(OSARCH), linux-gnu uclinux linux-uclibc linux-gnueabi ),)
+ifneq ($(findstring $(OSARCH), linux-gnu uclinux linux-uclibc linux-gnueabi kfreebsd-gnu),)
ifneq ($(findstring LOADABLE_MODULES,$(MENUSELECT_CFLAGS)),)
AST_LIBS+=-ldl
endif
diff --git a/main/acl.c b/main/acl.c
index 4ab102736..278647be8 100644
--- a/main/acl.c
+++ b/main/acl.c
@@ -123,7 +123,7 @@ static int get_local_address(struct ast_sockaddr *ourip)
char *buf = NULL;
int bufsz, x;
#endif /* SOLARIS */
-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__)
+#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__GLIBC__)
struct ifaddrs *ifap, *ifaphead;
int rtnerr;
const struct sockaddr_in *sin;
@@ -132,7 +132,7 @@ static int get_local_address(struct ast_sockaddr *ourip)
int best_score = -100;
memset(&best_addr, 0, sizeof(best_addr));
-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__)
+#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__GLIBC__)
rtnerr = getifaddrs(&ifaphead);
if (rtnerr) {
perror(NULL);
@@ -143,7 +143,7 @@ static int get_local_address(struct ast_sockaddr *ourip)
s = socket(AF_INET, SOCK_STREAM, 0);
if (s > 0) {
-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__)
+#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || defined(__Darwin__) || defined(__GLIBC__)
for (ifap = ifaphead; ifap; ifap = ifap->ifa_next) {
if (ifap->ifa_addr && ifap->ifa_addr->sa_family == AF_INET) {
diff --git a/main/netsock.c b/main/netsock.c
index e4cfb3bd3..b6dfc6e9c 100644
--- a/main/netsock.c
+++ b/main/netsock.c
@@ -29,9 +29,11 @@
ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
-#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__Darwin__)
+#ifndef __linux__
+#if defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__Darwin__) || defined(__GLIBC__)
#include <net/if_dl.h>
#endif
+#endif
#if defined (SOLARIS)
#include <sys/sockio.h>