diff options
-rw-r--r-- | avahi-core/iface-pfroute.c | 6 | ||||
-rw-r--r-- | configure.ac | 16 |
2 files changed, 19 insertions, 3 deletions
diff --git a/avahi-core/iface-pfroute.c b/avahi-core/iface-pfroute.c index a67b826..035e267 100644 --- a/avahi-core/iface-pfroute.c +++ b/avahi-core/iface-pfroute.c @@ -318,7 +318,7 @@ void avahi_interface_monitor_free_osdep(AvahiInterfaceMonitor *m) { } } -#ifndef HAVE_SYS_SYSCTL_H +#if defined (SIOCGLIFNUM) && defined(HAVE_STRUCT_LIFCONF) /* Solaris 8 and later; Sol 7? */ /* * I got this function from GNU zsbra */ @@ -428,7 +428,7 @@ static void if_add_interface(struct lifreq *lifreq, AvahiInterfaceMonitor *m, in #endif void avahi_interface_monitor_sync(AvahiInterfaceMonitor *m) { -#ifdef HAVE_SYS_SYSCTL_H +#ifndef HAVE_STRUCT_LIFCONF size_t needed; int mib[6]; char *buf, *lim, *next, count = 0; @@ -473,7 +473,7 @@ void avahi_interface_monitor_sync(AvahiInterfaceMonitor *m) { avahi_interface_monitor_check_relevant(m); avahi_interface_monitor_update_rrs(m, 0); avahi_log_info("Network interface enumeration completed."); -#else +#elif defined (SIOCGLIFNUM) && defined(HAVE_STRUCT_LIFCONF) /* Solaris 8 and later; Sol 7? */ int sockfd; int ret; int n; diff --git a/configure.ac b/configure.ac index ea6ef45..0acb7dc 100644 --- a/configure.ac +++ b/configure.ac @@ -104,11 +104,27 @@ AC_DEFINE([HAVE_SYS_SYSCTL_H],[],[Support for sys/sysctl.h]) , [], [ #include <sys/types.h> #include <sys/socket.h> +#include <sys/param.h> ]) AM_CONDITIONAL(HAVE_SYS_SYSCTL_H, [ test x"$HAVE_SYS_SYSCTL_H" = xyes ]) # +# Check for lifconf struct; only present on Solaris +# +AC_MSG_CHECKING(for struct lifconf) +AC_CACHE_VAL(avahi_cv_has_struct_lifconf, +[AC_TRY_COMPILE( +[#include <sys/socket.h> +#include <net/if.h> +],[sizeof (struct lifconf);], +avahi_cv_has_struct_lifconf=yes,avahi_cv_has_struct_lifconf=no)]) +AC_MSG_RESULT($avahi_cv_has_struct_lifconf) +if test $avahi_cv_has_struct_lifconf = yes; then + AC_DEFINE(HAVE_STRUCT_LIFCONF,1,[Define if there is a struct lifconf.]) +fi + +# # Check for struct ip_mreqn # AC_MSG_CHECKING(for struct ip_mreqn) |