aboutsummaryrefslogtreecommitdiff
path: root/net/avahi
diff options
context:
space:
mode:
authorJoe Marcus Clarke <marcus@FreeBSD.org>2007-08-26 04:56:04 +0000
committerJoe Marcus Clarke <marcus@FreeBSD.org>2007-08-26 04:56:04 +0000
commitb9c3d0bb346339854996f8dfaaef4911f63fa257 (patch)
treeba002f576f7ef9641b6158be0d3669c1a9a2b7e6 /net/avahi
parentbaa9289b9b1dfd5609f6709fa859f60458a9491a (diff)
downloadports-b9c3d0bb346339854996f8dfaaef4911f63fa257.tar.gz
ports-b9c3d0bb346339854996f8dfaaef4911f63fa257.zip
Update to 0.6.21, and add a patch from avahi SVN to fix a segfault when
no domains are configured in /etc/resolv.conf.
Notes
Notes: svn path=/head/; revision=198316
Diffstat (limited to 'net/avahi')
-rw-r--r--net/avahi/Makefile2
-rw-r--r--net/avahi/distinfo6
-rw-r--r--net/avahi/files/patch-avahi-common_dbus-watch-glue.c14
-rw-r--r--net/avahi/files/patch-avahi-core_fdutil.c10
-rw-r--r--net/avahi/files/patch-avahi-daemon_main.c169
-rw-r--r--net/avahi/files/patch-avahi-ui_avahi-ui.c11
6 files changed, 29 insertions, 183 deletions
diff --git a/net/avahi/Makefile b/net/avahi/Makefile
index d660c1baacb8..5a509b3cb7eb 100644
--- a/net/avahi/Makefile
+++ b/net/avahi/Makefile
@@ -6,7 +6,7 @@
# $MCom: ports/net/avahi/Makefile,v 1.19 2006/10/12 16:44:41 marcus Exp $
PORTNAME= avahi
-PORTVERSION= 0.6.20
+PORTVERSION= 0.6.21
PORTREVISION?= 0
CATEGORIES?= net dns
MASTER_SITES= http://www.avahi.org/download/
diff --git a/net/avahi/distinfo b/net/avahi/distinfo
index b17ca775e383..2600f64c27fe 100644
--- a/net/avahi/distinfo
+++ b/net/avahi/distinfo
@@ -1,3 +1,3 @@
-MD5 (avahi-0.6.20.tar.gz) = 6acdff79afa2631f765f3bbbc3e25a74
-SHA256 (avahi-0.6.20.tar.gz) = 89ae5fd08018679b80cee201e1c1350d86db73bdcf6718aabb4bd3ea86f93ec9
-SIZE (avahi-0.6.20.tar.gz) = 974209
+MD5 (avahi-0.6.21.tar.gz) = 9cc68f79c50c9dd9e419990c3c9b05b9
+SHA256 (avahi-0.6.21.tar.gz) = d817c35f43011861476eab02eea14edd123b2bc58b4408d9d9b69b0c39252561
+SIZE (avahi-0.6.21.tar.gz) = 976841
diff --git a/net/avahi/files/patch-avahi-common_dbus-watch-glue.c b/net/avahi/files/patch-avahi-common_dbus-watch-glue.c
new file mode 100644
index 000000000000..1e148af8564c
--- /dev/null
+++ b/net/avahi/files/patch-avahi-common_dbus-watch-glue.c
@@ -0,0 +1,14 @@
+--- avahi-common/dbus-watch-glue.c.orig 2007-08-26 00:46:45.000000000 -0400
++++ avahi-common/dbus-watch-glue.c 2007-08-26 00:47:12.000000000 -0400
+@@ -134,7 +134,11 @@ static dbus_bool_t update_watch(const Av
+
+ if (!(avahi_watch = poll_api->watch_new(
+ poll_api,
++#if (DBUS_VERSION_MAJOR == 1 && DBUS_VERSION_MINOR == 1 && DBUS_VERSION_MICRO >= 1) || (DBUS_VERSION_MAJOR == 1 && DBUS_VERSION_MAJOR > 1) || (DBUS_VERSION_MAJOR > 1)
+ dbus_watch_get_unix_fd(dbus_watch),
++#else
++ dbus_watch_get_fd(dbus_watch),
++#endif
+ translate_dbus_to_avahi(dbus_watch_get_flags(dbus_watch)),
+ watch_callback,
+ dbus_watch)))
diff --git a/net/avahi/files/patch-avahi-core_fdutil.c b/net/avahi/files/patch-avahi-core_fdutil.c
deleted file mode 100644
index 9ca63b133b59..000000000000
--- a/net/avahi/files/patch-avahi-core_fdutil.c
+++ /dev/null
@@ -1,10 +0,0 @@
---- avahi-core/fdutil.c.orig Sat Jun 23 02:09:02 2007
-+++ avahi-core/fdutil.c Sat Jun 23 02:09:37 2007
-@@ -23,6 +23,7 @@
- #include <config.h>
- #endif
-
-+#include <sys/select.h>
- #include <unistd.h>
- #include <fcntl.h>
- #include <assert.h>
diff --git a/net/avahi/files/patch-avahi-daemon_main.c b/net/avahi/files/patch-avahi-daemon_main.c
index f0e59c6885dd..c95ab399fe7e 100644
--- a/net/avahi/files/patch-avahi-daemon_main.c
+++ b/net/avahi/files/patch-avahi-daemon_main.c
@@ -1,161 +1,14 @@
---- avahi-daemon/main.c.orig Wed May 9 09:09:19 2007
-+++ avahi-daemon/main.c Sat Jun 9 13:56:02 2007
-@@ -50,6 +50,12 @@
- #endif
- #endif
-
-+#ifdef HAVE_KQUEUE
-+#include <sys/types.h>
-+#include <sys/event.h>
-+#include <unistd.h>
-+#endif
-+
- #include <libdaemon/dfork.h>
- #include <libdaemon/dsignal.h>
- #include <libdaemon/dlog.h>
-@@ -691,6 +697,53 @@ static void add_inotify_watches(void) {
-
- #endif
-
-+#ifdef HAVE_KQUEUE
-+
-+#define NUM_WATCHES 2
-+
-+static int kq = -1;
-+static int kfds[NUM_WATCHES];
-+static int num_kfds = 0;
-+
-+static void add_kqueue_watch(const char *dir);
-+
-+static void add_kqueue_watches(void) {
-+ int c = 0;
-+
-+#ifdef ENABLE_CHROOT
-+ c = config.use_chroot;
-+#endif
-+
-+ add_kqueue_watch(c ? "/" : AVAHI_CONFIG_DIR);
-+ add_kqueue_watch(c ? "/services" : AVAHI_SERVICE_DIR);
-+}
-+
-+static void add_kqueue_watch(const char *dir) {
-+ int fd;
-+ struct kevent ev;
-+
-+ if (kq < 0)
-+ return;
-+
-+ if (num_kfds >= NUM_WATCHES)
-+ return;
-+
-+ fd = open(dir, O_RDONLY);
-+ if (fd < 0)
-+ return;
-+ EV_SET(&ev, fd, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_CLEAR,
-+ NOTE_DELETE | NOTE_EXTEND | NOTE_WRITE | NOTE_RENAME,
-+ 0, 0);
-+ if (kevent(kq, &ev, 1, NULL, 0, NULL) == -1) {
-+ close(fd);
-+ return;
-+ }
-+
-+ kfds[num_kfds++] = fd;
-+}
-+
-+#endif
-+
- static void reload_config(void) {
-
- #ifdef HAVE_INOTIFY
-@@ -698,6 +751,10 @@ static void reload_config(void) {
- add_inotify_watches();
- #endif
-
-+#ifdef HAVE_KQUEUE
-+ add_kqueue_watches();
-+#endif
-+
- #ifdef ENABLE_CHROOT
- static_service_load(config.use_chroot);
- static_hosts_load(config.use_chroot);
-@@ -746,6 +803,31 @@ static void inotify_callback(AvahiWatch
-
- #endif
-
-+#ifdef HAVE_KQUEUE
-+
-+static void kqueue_callback(AvahiWatch *watch, int fd, AVAHI_GCC_UNUSED AvahiWatchEvent event, AVAHI_GCC_UNUSED void *userdata) {
-+ struct kevent ev;
-+ struct timespec nullts = { 0, 0 };
-+ int res;
-+
-+ assert(fd == kq);
-+ assert(watch);
-+
-+ res = kevent(kq, NULL, 0, &ev, 1, &nullts);
-+
-+ if (res > 0) {
-+ /* Sleep for a half-second to avoid potential races
-+ * during install/uninstall. */
-+ usleep(500000);
-+ avahi_log_info("Files changed, reloading.");
-+ reload_config();
-+ } else {
-+ avahi_log_error("Failed to read kqueue event: %s", avahi_strerror(errno));
-+ }
-+}
-+
-+#endif
-+
- static void signal_callback(AvahiWatch *watch, AVAHI_GCC_UNUSED int fd, AVAHI_GCC_UNUSED AvahiWatchEvent event, AVAHI_GCC_UNUSED void *userdata) {
- int sig;
- const AvahiPoll *poll_api;
-@@ -801,6 +883,10 @@ static int run_server(DaemonConfig *c) {
- #ifdef HAVE_INOTIFY
- AvahiWatch *inotify_watch = NULL;
- #endif
-+#ifdef HAVE_KQUEUE
-+ int i;
-+ AvahiWatch *kqueue_watch = NULL;
-+#endif
-
- assert(c);
-
-@@ -876,6 +962,19 @@ static int run_server(DaemonConfig *c) {
- }
- #endif
-
-+#ifdef HAVE_KQUEUE
-+ if ((kq = kqueue()) < 0)
-+ avahi_log_warn( "Failed to initialize kqueue: %s", strerror(errno));
-+ else {
-+ add_kqueue_watches();
-+
-+ if (!(kqueue_watch = poll_api->watch_new(poll_api, kq, AVAHI_WATCH_IN, kqueue_callback, NULL))) {
-+ avahi_log_error( "Failed to create kqueue watcher");
-+ goto finish;
-+ }
+--- avahi-daemon/main.c.orig 2007-08-26 00:48:40.000000000 -0400
++++ avahi-daemon/main.c 2007-08-26 00:49:04.000000000 -0400
+@@ -317,6 +317,11 @@ static void update_browse_domains(void)
+ int n;
+ char **p;
+
++ if (!resolv_conf_search_domains) {
++ avahi_server_set_browse_domains(avahi_server, NULL);
++ return;
+ }
-+#endif
+
- load_resolv_conf();
- #ifdef ENABLE_CHROOT
- static_service_load(config.use_chroot);
-@@ -944,6 +1043,17 @@ finish:
- poll_api->watch_free(inotify_watch);
- if (inotify_fd >= 0)
- close(inotify_fd);
-+#endif
-+
-+#ifdef HAVE_KQUEUE
-+ if (kqueue_watch)
-+ poll_api->watch_free(kqueue_watch);
-+ if (kq >= 0)
-+ close(kq);
-+ for (i = 0; i < num_kfds; i++) {
-+ if (kfds[i] >= 0)
-+ close(kfds[i]);
-+ }
- #endif
+ l = avahi_string_list_copy(config.server_config.browse_domains);
- if (simple_poll_api) {
+ for (p = resolv_conf_search_domains, n = 0; *p && n < BROWSE_DOMAINS_MAX; p++, n++) {
diff --git a/net/avahi/files/patch-avahi-ui_avahi-ui.c b/net/avahi/files/patch-avahi-ui_avahi-ui.c
deleted file mode 100644
index 0eeddde45beb..000000000000
--- a/net/avahi/files/patch-avahi-ui_avahi-ui.c
+++ /dev/null
@@ -1,11 +0,0 @@
---- avahi-ui/avahi-ui.c.orig Fri Apr 20 20:07:43 2007
-+++ avahi-ui/avahi-ui.c Fri Apr 20 20:09:03 2007
-@@ -23,6 +23,8 @@
- #include <config.h>
- #endif
-
-+#include <sys/types.h>
-+#include <sys/socket.h>
- #include <string.h>
- #include <stdarg.h>
- #include <net/if.h>