summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Estienne <sebastien.estienne@gmail.com>2006-05-02 15:10:31 +0000
committerSebastien Estienne <sebastien.estienne@gmail.com>2006-05-02 15:10:31 +0000
commitd0a63590d4730eb0af3ec6027818cb62d50ea657 (patch)
treed8d6ffcee0522b8c7e5910e168b033d8a6dca5b1
parent1a944fb979cf994bdf3b669248f8508394c1697b (diff)
Patch from Padraig O'Briain <Padraig.Obriain@sun.com> to build avahi on Solaris
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1206 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
-rw-r--r--avahi-core/iface-pfroute.c12
-rw-r--r--avahi-core/socket.c3
-rw-r--r--avahi-daemon/simple-protocol.c7
-rwxr-xr-xbootstrap.sh2
-rw-r--r--configure.ac26
-rw-r--r--service-type-database/Makefile.am2
6 files changed, 50 insertions, 2 deletions
diff --git a/avahi-core/iface-pfroute.c b/avahi-core/iface-pfroute.c
index 8b76afa..51f6773 100644
--- a/avahi-core/iface-pfroute.c
+++ b/avahi-core/iface-pfroute.c
@@ -32,7 +32,9 @@
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/param.h>
+#ifdef HAVE_SYS_SYSCTL_H
#include <sys/sysctl.h>
+#endif
#include <net/route.h>
#include <net/if.h>
@@ -108,7 +110,11 @@ static void rtm_info(struct rt_msghdr *rtm, AvahiInterfaceMonitor *m)
#define ROUNDUP(a) \
((a) > 0 ? (1 + (((a) - 1) | (sizeof(long) - 1))) : sizeof(long))
+#ifdef HAVE_SYS_SYSCTL_H
#define ADVANCE(x, n) (x += ROUNDUP((n)->sa_len))
+#else
+#define ADVANCE(x, n) (x += ROUNDUP(sizeof(struct sockaddr)))
+#endif
static void rtm_addr(struct rt_msghdr *rtm, AvahiInterfaceMonitor *m)
{
@@ -140,8 +146,10 @@ static void rtm_addr(struct rt_msghdr *rtm, AvahiInterfaceMonitor *m)
if (!(addrs & 1<<i))
continue;
sa = (struct sockaddr *)cp;
+#ifdef HAVE_SYS_SYSCTL_H
if (sa->sa_len == 0)
continue;
+#endif
switch(sa->sa_family) {
case AF_INET:
switch (1<<i) {
@@ -317,6 +325,7 @@ void avahi_interface_monitor_sync(AvahiInterfaceMonitor *m) {
assert(m);
retry2:
+#ifdef HAVE_SYS_SYSCTL_H
mib[0] = CTL_NET;
mib[1] = PF_ROUTE;
mib[2] = 0; /* protocol */
@@ -329,11 +338,13 @@ void avahi_interface_monitor_sync(AvahiInterfaceMonitor *m) {
avahi_log_error("route-sysctl-estimate");
return;
}
+#endif
if ((buf = avahi_malloc(needed)) == NULL)
{
avahi_log_error("malloc failed in avahi_interface_monitor_sync");
return;
}
+#ifdef HAVE_SYS_SYSCTL_H
if (sysctl(mib, 6, buf, &needed, NULL, 0) < 0) {
avahi_log_warn("sysctl failed: %s", strerror(errno));
if (errno == ENOMEM && count++ < 10) {
@@ -343,6 +354,7 @@ void avahi_interface_monitor_sync(AvahiInterfaceMonitor *m) {
goto retry2;
}
}
+#endif
lim = buf + needed;
for (next = buf; next < lim; next += rtm->rtm_msglen) {
rtm = (struct rt_msghdr *)next;
diff --git a/avahi-core/socket.c b/avahi-core/socket.c
index 0eb0374..bd72934 100644
--- a/avahi-core/socket.c
+++ b/avahi-core/socket.c
@@ -31,6 +31,9 @@
#include <fcntl.h>
#include <sys/time.h>
#include <sys/ioctl.h>
+#ifdef HAVE_SYS_FILIO_H
+#include <sys/filio.h>
+#endif
#include <assert.h>
#include <sys/types.h>
diff --git a/avahi-daemon/simple-protocol.c b/avahi-daemon/simple-protocol.c
index 740f78b..04b07c7 100644
--- a/avahi-daemon/simple-protocol.c
+++ b/avahi-daemon/simple-protocol.c
@@ -49,6 +49,13 @@
#include "chroot.h"
#endif
+#ifndef AF_LOCAL
+#define AF_LOCAL AF_UNIX
+#endif
+#ifndef PF_LOCAL
+#define PF_LOCAL PF_UNIX
+#endif
+
#define BUFFER_SIZE (20*1024)
#define CLIENTS_MAX 50
diff --git a/bootstrap.sh b/bootstrap.sh
index d0f85cc..ada993f 100755
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -55,7 +55,7 @@ case "$USER" in
FLAGS="$FLAGS --disable-qt4"
;;
sebest)
- FLAGS="$FLAGS --enable-monodoc=auto --enable-dbus=auto --enable-mono=auto --enable-qt3=auto --enable-qt4=auto --sysconfdir=/etc --localstatedir=/var --prefix=/usr --disable-manpages --disable-xmltoman"
+ FLAGS="$FLAGS --disable-monodoc --enable-dbus=no --enable-mono=no --enable-qt3=no --enable-qt4=no --sysconfdir=/etc --localstatedir=/var --prefix=/usr --disable-manpages --disable-xmltoman"
;;
esac
diff --git a/configure.ac b/configure.ac
index a7d2c65..bf22be8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -85,6 +85,28 @@ AC_DEFINE([HAVE_PF_ROUTE],[],[Support for PF_ROUTE])
AM_CONDITIONAL(HAVE_PF_ROUTE, [ test x"$HAVE_PF_ROUTE" = xyes ])
#
+# Check for sys/filio.h; needed for FIONREAD on Solaris
+#
+AC_CHECK_HEADER(sys/filio.h,
+HAVE_SYS_FILIO_H=yes
+AC_DEFINE([HAVE_SYS_FILIO_H],[],[Support for sys/filio.h])
+, [], [
+])
+
+AM_CONDITIONAL(HAVE_SYS_FILIO_H, [ test x"$HAVE_SYS_FILIO_H" = xyes ])
+
+#
+# Check for sys/sysctl.h; not present on Solaris
+#
+AC_CHECK_HEADER(sys/sysctl.h,
+HAVE_SYS_SYSCTL=yes
+AC_DEFINE([HAVE_SYS_SYSCTL_H],[],[Support for sys/sysctl.h])
+, [], [
+])
+
+AM_CONDITIONAL(HAVE_SYS_SYSCTL_H, [ test x"$HAVE_SYS_SYSCTL_H" = xyes ])
+
+#
# Check for struct ip_mreqn
#
AC_MSG_CHECKING(for struct ip_mreqn)
@@ -541,7 +563,9 @@ if test "x$HAVE_PYTHON" = "xyes" ; then
fi
AM_CHECK_PYMOD(socket,,,[AC_MSG_ERROR(Could not find Python module socket)])
- AM_CHECK_PYMOD(gdbm,,,[AC_MSG_ERROR(Could not find Python module gdbm)])
+ if test "x$HAVE_GDBM" = "xyes"; then
+ AM_CHECK_PYMOD(gdbm,,,[AC_MSG_ERROR(Could not find Python module gdbm)])
+ fi
fi
fi
AM_CONDITIONAL(HAVE_PYTHON, [test "x$HAVE_PYTHON" = "xyes" ])
diff --git a/service-type-database/Makefile.am b/service-type-database/Makefile.am
index 2b20512..3250e94 100644
--- a/service-type-database/Makefile.am
+++ b/service-type-database/Makefile.am
@@ -22,6 +22,7 @@ EXTRA_DIST=build-db.in service-types
pkgdata_DATA=service-types
if HAVE_PYTHON
+if HAVE_GDBM
noinst_SCRIPTS=build-db
pkgdata_DATA+=service-types.db
@@ -36,3 +37,4 @@ service-types.db: service-types build-db
CLEANFILES = service-types.db build-db
endif
+endif