diff options
29 files changed, 140 insertions, 110 deletions
diff --git a/.dir-locals.el b/.dir-locals.el new file mode 100644 index 0000000..9d9f8cd --- /dev/null +++ b/.dir-locals.el @@ -0,0 +1,7 @@ +; Sets emacs variables based on mode. +; A list of (major-mode . ((var1 . value1) (var2 . value2))) +; Mode can be nil, which gives default values. + +((nil . ((indent-tabs-mode . nil) + (tab-width . 8))) +) diff --git a/Makefile.am b/Makefile.am index 1c67793..8234d69 100644 --- a/Makefile.am +++ b/Makefile.am @@ -155,6 +155,7 @@ pkgconfigdir = $(libdir)/pkgconfig %.pc: %.pc.in $(AM_V_GEN)sed -e 's,@prefix\@,$(prefix),g' \ -e 's,@libdir\@,$(libdir),g' \ + -e 's,@HOWL_COMPAT_VERSION\@,$(HOWL_COMPAT_VERSION),g' \ -e 's,@PACKAGE_VERSION\@,$(PACKAGE_VERSION),g' $< > $@ pkgconfig_DATA = avahi-core.pc diff --git a/avahi-autoipd/iface-linux.c b/avahi-autoipd/iface-linux.c index fc27829..83e9e41 100644 --- a/avahi-autoipd/iface-linux.c +++ b/avahi-autoipd/iface-linux.c @@ -262,7 +262,7 @@ int iface_get_initial_state(State *state) { n->nlmsg_len = NLMSG_LENGTH(sizeof(*ifi)); n->nlmsg_type = RTM_GETLINK; n->nlmsg_seq = seq; - n->nlmsg_flags = NLM_F_MATCH|NLM_F_REQUEST|NLM_F_ACK; + n->nlmsg_flags = NLM_F_REQUEST|NLM_F_DUMP; n->nlmsg_pid = 0; ifi = NLMSG_DATA(n); diff --git a/avahi-client/browser.c b/avahi-client/browser.c index f92ed0d..c978d94 100644 --- a/avahi-client/browser.c +++ b/avahi-client/browser.c @@ -171,7 +171,7 @@ AvahiDomainBrowser* avahi_domain_browser_new( DBUS_TYPE_INT32, &i_protocol, DBUS_TYPE_STRING, &domain, DBUS_TYPE_INT32, &bt, - DBUS_TYPE_UINT32, &flags, + DBUS_TYPE_UINT32, &u_flags, DBUS_TYPE_INVALID))) { avahi_client_set_errno(client, AVAHI_ERR_NO_MEMORY); goto fail; @@ -1023,4 +1023,3 @@ fail: dbus_error_free (&error); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } - diff --git a/avahi-common/utf8.c b/avahi-common/utf8.c index fa6a318..ab10ba0 100644 --- a/avahi-common/utf8.c +++ b/avahi-common/utf8.c @@ -60,9 +60,6 @@ avahi_utf8_valid (const char *str) /* done */; else { - const char *last; - - last = p; if ((*(const unsigned char *)p & 0xe0) == 0xc0) /* 110xxxxx */ { if ( ((*(const unsigned char *)p & 0x1e) == 0)) diff --git a/avahi-core/avahi-test.c b/avahi-core/avahi-test.c index 07d7a8d..8b2376f 100644 --- a/avahi-core/avahi-test.c +++ b/avahi-core/avahi-test.c @@ -381,6 +381,7 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) { avahi_s_record_browser_free(r); avahi_s_host_name_resolver_free(hnr); avahi_s_address_resolver_free(ar); + avahi_s_domain_browser_free(db); avahi_s_service_type_browser_free(stb); avahi_s_service_browser_free(sb); avahi_s_service_resolver_free(sr); diff --git a/avahi-core/iface-linux.c b/avahi-core/iface-linux.c index a1b7f73..da497bc 100644 --- a/avahi-core/iface-linux.c +++ b/avahi-core/iface-linux.c @@ -53,7 +53,7 @@ static int netlink_list_items(AvahiNetlink *nl, uint16_t type, unsigned *ret_seq n = (struct nlmsghdr*) req; n->nlmsg_len = NLMSG_LENGTH(sizeof(struct rtgenmsg)); n->nlmsg_type = type; - n->nlmsg_flags = NLM_F_ROOT|NLM_F_REQUEST; + n->nlmsg_flags = NLM_F_REQUEST|NLM_F_DUMP; n->nlmsg_pid = 0; gen = NLMSG_DATA(n); @@ -181,8 +181,8 @@ static void netlink_callback(AvahiNetlink *nl, struct nlmsghdr *n, void* userdat AvahiInterface *i; struct rtattr *a = NULL; size_t l; - AvahiAddress raddr; - int raddr_valid = 0; + AvahiAddress raddr, rlocal, *r; + int raddr_valid = 0, rlocal_valid = 0; /* We are only interested in IPv4 and IPv6 */ if (ifaddrmsg->ifa_family != AF_INET && ifaddrmsg->ifa_family != AF_INET6) @@ -195,7 +195,7 @@ static void netlink_callback(AvahiNetlink *nl, struct nlmsghdr *n, void* userdat return; /* Fill in address family for our new address */ - raddr.proto = avahi_af_to_proto(ifaddrmsg->ifa_family); + rlocal.proto = raddr.proto = avahi_af_to_proto(ifaddrmsg->ifa_family); l = NLMSG_PAYLOAD(n, sizeof(struct ifaddrmsg)); a = IFA_RTA(ifaddrmsg); @@ -203,8 +203,25 @@ static void netlink_callback(AvahiNetlink *nl, struct nlmsghdr *n, void* userdat while (RTA_OK(a, l)) { switch(a->rta_type) { + case IFA_ADDRESS: - /* Fill in address data */ + + if ((rlocal.proto == AVAHI_PROTO_INET6 && RTA_PAYLOAD(a) != 16) || + (rlocal.proto == AVAHI_PROTO_INET && RTA_PAYLOAD(a) != 4)) + return; + + memcpy(rlocal.data.data, RTA_DATA(a), RTA_PAYLOAD(a)); + rlocal_valid = 1; + + break; + + case IFA_LOCAL: + + /* Fill in local address data. Usually this is + * preferable over IFA_ADDRESS if both are set, + * since this refers to the local address of a PPP + * link while IFA_ADDRESS refers to the other + * end. */ if ((raddr.proto == AVAHI_PROTO_INET6 && RTA_PAYLOAD(a) != 16) || (raddr.proto == AVAHI_PROTO_INET && RTA_PAYLOAD(a) != 4)) @@ -223,17 +240,21 @@ static void netlink_callback(AvahiNetlink *nl, struct nlmsghdr *n, void* userdat } /* If there was no adress attached to this message, let's quit. */ - if (!raddr_valid) + if (rlocal_valid) + r = &rlocal; + else if (raddr_valid) + r = &raddr; + else return; if (n->nlmsg_type == RTM_NEWADDR) { AvahiInterfaceAddress *addr; /* This address is new or has been modified, so let's get an object for it */ - if (!(addr = avahi_interface_monitor_get_address(m, i, &raddr))) + if (!(addr = avahi_interface_monitor_get_address(m, i, r))) /* Mmm, no object existing yet, so let's create a new one */ - if (!(addr = avahi_interface_address_new(m, i, &raddr, ifaddrmsg->ifa_prefixlen))) + if (!(addr = avahi_interface_address_new(m, i, r, ifaddrmsg->ifa_prefixlen))) return; /* OOM */ /* Update the scope field for the address */ @@ -244,7 +265,7 @@ static void netlink_callback(AvahiNetlink *nl, struct nlmsghdr *n, void* userdat assert(n->nlmsg_type == RTM_DELADDR); /* Try to get a reference to our AvahiInterfaceAddress object for this address */ - if (!(addr = avahi_interface_monitor_get_address(m, i, &raddr))) + if (!(addr = avahi_interface_monitor_get_address(m, i, r))) return; /* And free it */ diff --git a/avahi-core/server.c b/avahi-core/server.c index 2b8f95f..86fd4a5 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -513,12 +513,20 @@ static void reflect_response(AvahiServer *s, AvahiInterface *i, AvahiRecord *r, static void* reflect_cache_walk_callback(AvahiCache *c, AvahiKey *pattern, AvahiCacheEntry *e, void* userdata) { AvahiServer *s = userdata; + AvahiRecord* r; assert(c); assert(pattern); assert(e); assert(s); + /* Don't reflect cache entry with ipv6 link-local addresses. */ + r = e->record; + if ((r->key->type == AVAHI_DNS_TYPE_AAAA) && + (r->data.aaaa.address.address[0] == 0xFE) && + (r->data.aaaa.address.address[1] == 0x80)) + return NULL; + avahi_record_list_push(s->record_list, e->record, e->cache_flush, 0, 0); return NULL; } diff --git a/avahi-core/socket.c b/avahi-core/socket.c index be62105..e69ec7d 100644 --- a/avahi-core/socket.c +++ b/avahi-core/socket.c @@ -653,10 +653,6 @@ AvahiDnsPacket *avahi_recv_dns_packet_ipv4( goto fail; } - /* For corrupt packets FIONREAD returns zero size (See rhbz #607297) */ - if (!ms) - goto fail; - p = avahi_dns_packet_new(ms + AVAHI_DNS_PACKET_EXTRA_SIZE); io.iov_base = AVAHI_DNS_PACKET_DATA(p); @@ -683,10 +679,14 @@ AvahiDnsPacket *avahi_recv_dns_packet_ipv4( goto fail; } - if (sa.sin_addr.s_addr == INADDR_ANY) { + /* For corrupt packets FIONREAD returns zero size (See rhbz #607297). So + * fail after having read them. */ + if (!ms) + goto fail; + + if (sa.sin_addr.s_addr == INADDR_ANY) /* Linux 2.4 behaves very strangely sometimes! */ goto fail; - } assert(!(msg.msg_flags & MSG_CTRUNC)); assert(!(msg.msg_flags & MSG_TRUNC)); @@ -810,10 +810,6 @@ AvahiDnsPacket *avahi_recv_dns_packet_ipv6( goto fail; } - /* For corrupt packets FIONREAD returns zero size (See rhbz #607297) */ - if (!ms) - goto fail; - p = avahi_dns_packet_new(ms + AVAHI_DNS_PACKET_EXTRA_SIZE); io.iov_base = AVAHI_DNS_PACKET_DATA(p); @@ -841,6 +837,11 @@ AvahiDnsPacket *avahi_recv_dns_packet_ipv6( goto fail; } + /* For corrupt packets FIONREAD returns zero size (See rhbz #607297). So + * fail after having read them. */ + if (!ms) + goto fail; + assert(!(msg.msg_flags & MSG_CTRUNC)); assert(!(msg.msg_flags & MSG_TRUNC)); diff --git a/avahi-daemon/chroot.c b/avahi-daemon/chroot.c index d796a39..ccd56be 100644 --- a/avahi-daemon/chroot.c +++ b/avahi-daemon/chroot.c @@ -394,12 +394,14 @@ int avahi_chroot_helper_unlink(const char *fname) { return -1; } - if (write(helper_fd, &command, sizeof(command)) < 0) { + if (write(helper_fd, &command, sizeof(command)) < 0 && + (errno != EPIPE && errno != ECONNRESET)) { avahi_log_error("write() failed: %s\n", strerror(errno)); return -1; } - if ((r = read(helper_fd, &c, sizeof(c))) < 0) { + if ((r = read(helper_fd, &c, sizeof(c))) < 0 && + (errno != EPIPE && errno != ECONNRESET)) { avahi_log_error("read() failed: %s\n", r < 0 ? strerror(errno) : "EOF"); return -1; } diff --git a/avahi-daemon/dbus-protocol.c b/avahi-daemon/dbus-protocol.c index 91ea8fa..eb8a662 100644 --- a/avahi-daemon/dbus-protocol.c +++ b/avahi-daemon/dbus-protocol.c @@ -197,7 +197,7 @@ static DBusHandlerResult msg_signal_filter_impl(AVAHI_GCC_UNUSED DBusConnection server->reconnect_timeout = server->poll_api->timeout_new(server->poll_api, &tv, reconnect_callback, NULL); } else { avahi_log_warn("Disconnected from D-Bus, exiting."); - raise(SIGQUIT); + raise(SIGTERM); } return DBUS_HANDLER_RESULT_HANDLED; diff --git a/avahi-daemon/main.c b/avahi-daemon/main.c index 1e8b255..d46f40a 100644 --- a/avahi-daemon/main.c +++ b/avahi-daemon/main.c @@ -1046,12 +1046,10 @@ static void signal_callback(AvahiWatch *watch, AVAHI_GCC_UNUSED int fd, AVAHI_GC switch (sig) { case SIGINT: - case SIGQUIT: case SIGTERM: avahi_log_info( "Got %s, quitting.", - sig == SIGINT ? "SIGINT" : - (sig == SIGQUIT ? "SIGQUIT" : "SIGTERM")); + sig == SIGINT ? "SIGINT" : "SIGTERM"); avahi_simple_poll_quit(simple_poll_api); break; @@ -1113,7 +1111,7 @@ static int run_server(DaemonConfig *c) { poll_api = avahi_simple_poll_get(simple_poll_api); - if (daemon_signal_init(SIGINT, SIGQUIT, SIGHUP, SIGTERM, SIGUSR1, 0) < 0) { + if (daemon_signal_init(SIGINT, SIGHUP, SIGTERM, SIGUSR1, 0) < 0) { avahi_log_error("Could not register signal handlers (%s).", strerror(errno)); goto finish; } diff --git a/avahi-daemon/sd-daemon.c b/avahi-daemon/sd-daemon.c index 316fccc..6d1eebf 100644 --- a/avahi-daemon/sd-daemon.c +++ b/avahi-daemon/sd-daemon.c @@ -40,6 +40,7 @@ #include <string.h> #include <stdarg.h> #include <stdio.h> +#include <stddef.h> #include "sd-daemon.h" @@ -307,17 +308,17 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t if (length <= 0) /* Unnamed socket */ - return l == sizeof(sa_family_t); + return l == offsetof(struct sockaddr_un, sun_path); if (path[0]) /* Normal path socket */ return - (l >= sizeof(sa_family_t) + length + 1) && + (l >= offsetof(struct sockaddr_un, sun_path) + length + 1) && memcmp(path, sockaddr.un.sun_path, length+1) == 0; else /* Abstract namespace socket */ return - (l == sizeof(sa_family_t) + length) && + (l == offsetof(struct sockaddr_un, sun_path) + length) && memcmp(path, sockaddr.un.sun_path, length) == 0; } @@ -366,7 +367,7 @@ int sd_notify(int unset_environment, const char *state) { memset(&msghdr, 0, sizeof(msghdr)); msghdr.msg_name = &sockaddr; - msghdr.msg_namelen = sizeof(sa_family_t) + strlen(e); + msghdr.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(e); if (msghdr.msg_namelen > sizeof(struct sockaddr_un)) msghdr.msg_namelen = sizeof(struct sockaddr_un); @@ -433,41 +434,3 @@ int sd_booted(void) { return a.st_dev != b.st_dev; #endif } - -static int touch(const char *path) { - -#if !defined(DISABLE_SYSTEMD) && defined(__linux__) - int fd; - - mkdir("/dev/.systemd", 0755); - mkdir("/dev/.systemd/readahead", 0755); - - if ((fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY, 0666)) < 0) - return -errno; - - for (;;) { - if (close(fd) >= 0) - break; - - if (errno != -EINTR) - return -errno; - } - -#endif - return 0; -} - -int sd_readahead(const char *action) { - - if (!action) - return -EINVAL; - - if (strcmp(action, "cancel") == 0) - return touch("/dev/.systemd/readahead/cancel"); - else if (strcmp(action, "done") == 0) - return touch("/dev/.systemd/readahead/done"); - else if (strcmp(action, "noreplay") == 0) - return touch("/dev/.systemd/readahead/noreplay"); - - return -EINVAL; -} diff --git a/avahi-daemon/sd-daemon.h b/avahi-daemon/sd-daemon.h index 2fbfe95..4b853a1 100644 --- a/avahi-daemon/sd-daemon.h +++ b/avahi-daemon/sd-daemon.h @@ -67,17 +67,21 @@ extern "C" { See sd-daemon(7) for more information. */ +#ifndef _sd_printf_attr_ #if __GNUC__ >= 4 #define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b))) #else #define _sd_printf_attr_(a,b) #endif +#endif +#ifndef _sd_hidden_ #if (__GNUC__ >= 4) && !defined(SD_EXPORT_SYMBOLS) #define _sd_hidden_ __attribute__ ((visibility("hidden"))) #else #define _sd_hidden_ #endif +#endif /* Log levels for usage on stderr: @@ -181,7 +185,7 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t READY=1 Tells systemd that daemon startup is finished (only relevant for services of Type=notify). The passed argument is a boolean "1" or "0". Since there is - little value in signalling non-readiness the only + little value in signaling non-readiness the only value daemons should send is "READY=1". STATUS=... Passes a single-line status string back to systemd @@ -202,7 +206,7 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t fork off the process itself. Example: "MAINPID=4711" Daemons can choose to send additional variables. However, it is - recommened to prefix variable names not listed above with X_. + recommended to prefix variable names not listed above with X_. Returns a negative errno-style error code on failure. Returns > 0 if systemd could be notified, 0 if it couldn't possibly because @@ -248,22 +252,12 @@ int sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_( fine. You should NOT protect them with a call to this function. Also note that this function checks whether the system, not the user session is controlled by systemd. However the functions above work - for both session and system services. + for both user and system services. See sd_booted(3) for more information. */ int sd_booted(void) _sd_hidden_; -/* - Controls ongoing disk read-ahead operations during boot-up. The argument - must be a string, and either "cancel", "done" or "noreplay". - - cancel = terminate read-ahead data collection, drop collected information - done = terminate read-ahead data collection, keep collected information - noreplay = terminate read-ahead replay -*/ -int sd_readahead(const char *action); - #ifdef __cplusplus } #endif diff --git a/avahi-daemon/setproctitle.c b/avahi-daemon/setproctitle.c index aef3555..e6f0941 100644 --- a/avahi-daemon/setproctitle.c +++ b/avahi-daemon/setproctitle.c @@ -85,7 +85,7 @@ void avahi_set_proc_title(const char *name, const char *fmt,...) { va_end(ap); setproctitle("-%s", t); -#elif __linux__ +#elif defined(__linux__) size_t l; va_list ap; diff --git a/avahi-daemon/simple-protocol.c b/avahi-daemon/simple-protocol.c index 7f75562..3e0ebb1 100644 --- a/avahi-daemon/simple-protocol.c +++ b/avahi-daemon/simple-protocol.c @@ -475,7 +475,7 @@ int simple_protocol_setup(const AvahiPoll *poll_api) { if (n == 1) { int r; - if ((r = sd_is_socket(AF_LOCAL, SOCK_STREAM, 1, 0)) < 0) { + if ((r = sd_is_socket(SD_LISTEN_FDS_START, AF_LOCAL, SOCK_STREAM, 1)) < 0) { avahi_log_warn("Passed systemd file descriptor is of wrong type: %s", strerror(-r)); goto fail; } diff --git a/avahi-dnsconfd/avahi-dnsconfd.service.in b/avahi-dnsconfd/avahi-dnsconfd.service.in index bd12b7e..89f436d 100644 --- a/avahi-dnsconfd/avahi-dnsconfd.service.in +++ b/avahi-dnsconfd/avahi-dnsconfd.service.in @@ -23,7 +23,6 @@ After=syslog.target avahi-daemon.socket [Service] Type=simple ExecStart=@sbindir@/avahi-dnsconfd -s -ExecReload=@sbindir@/avahi-dnsconfd -r [Install] WantedBy=multi-user.target diff --git a/avahi-gobject/ga-service-browser.c b/avahi-gobject/ga-service-browser.c index abd03cd..3c3b80e 100644 --- a/avahi-gobject/ga-service-browser.c +++ b/avahi-gobject/ga-service-browser.c @@ -330,14 +330,14 @@ static void _avahi_service_browser_cb(AvahiServiceBrowser * b, AvahiIfIndex inte } } -GaServiceBrowser *ga_service_browser_new(gchar * type) { +GaServiceBrowser *ga_service_browser_new(const gchar * type) { return ga_service_browser_new_full(AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, type, NULL, 0); } GaServiceBrowser *ga_service_browser_new_full(AvahiIfIndex interface, AvahiProtocol protocol, - gchar * type, gchar * domain, + const gchar * type, gchar * domain, GaLookupFlags flags) { return g_object_new(GA_TYPE_SERVICE_BROWSER, "interface", interface, diff --git a/avahi-gobject/ga-service-browser.h b/avahi-gobject/ga-service-browser.h index d625279..eaead4b 100644 --- a/avahi-gobject/ga-service-browser.h +++ b/avahi-gobject/ga-service-browser.h @@ -55,11 +55,11 @@ GType ga_service_browser_get_type(void); #define GA_SERVICE_BROWSER_GET_CLASS(obj) \ (G_TYPE_INSTANCE_GET_CLASS ((obj), GA_TYPE_SERVICE_BROWSER, GaServiceBrowserClass)) -GaServiceBrowser *ga_service_browser_new(gchar * type); +GaServiceBrowser *ga_service_browser_new(const gchar * type); GaServiceBrowser *ga_service_browser_new_full(AvahiIfIndex interface, AvahiProtocol protocol, - gchar * type, gchar * domain, + const gchar * type, gchar * domain, GaLookupFlags flags); gboolean diff --git a/avahi-python/avahi-discover/avahi-discover.py b/avahi-python/avahi-discover/avahi-discover.py index cea1ff9..362d3b6 100755 --- a/avahi-python/avahi-discover/avahi-discover.py +++ b/avahi-python/avahi-discover/avahi-discover.py @@ -236,7 +236,7 @@ class Main_window: def insert_row(self, model,parent, content, name, interface,protocol,stype,domain): myiter=model.insert_after(parent,None) - model.set(myiter,0,content,1,name,2,interface,3,protocol,4,stype,5,domain) + model.set(myiter,0,content,1,name,2,str(interface),3,str(protocol),4,stype,5,domain) return myiter def new(self): diff --git a/avahi-ui/avahi-ui.c b/avahi-ui/avahi-ui.c index 2569ba0..92d765a 100644 --- a/avahi-ui/avahi-ui.c +++ b/avahi-ui/avahi-ui.c @@ -890,7 +890,7 @@ static void response_callback(GtkDialog *dialog, gint response, gpointer user_da gtk_widget_set_sensitive(GTK_WIDGET(dialog), FALSE); cursor = gdk_cursor_new(GDK_WATCH); gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(dialog)), cursor); - gdk_cursor_unref(cursor); + g_object_unref(G_OBJECT(cursor)); if (!(d->priv->resolver = avahi_service_resolver_new( d->priv->client, interface, protocol, name, type, d->priv->domain, diff --git a/configure.ac b/configure.ac index f2377b7..b9aa356 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,7 @@ # USA. AC_PREREQ(2.63) -AC_INIT([avahi],[0.6.28],[avahi (at) lists (dot) freedesktop (dot) org]) +AC_INIT([avahi],[0.6.29],[avahi (at) lists (dot) freedesktop (dot) org]) AC_CONFIG_SRCDIR([avahi-core/server.c]) AC_CONFIG_MACRO_DIR([common]) AC_CONFIG_HEADERS([config.h]) @@ -28,13 +28,13 @@ AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax]) AC_SUBST(PACKAGE_URL, [http://avahi.org/]) AC_SUBST(LIBAVAHI_COMMON_VERSION_INFO, [8:2:5]) -AC_SUBST(LIBAVAHI_CORE_VERSION_INFO, [7:0:0]) +AC_SUBST(LIBAVAHI_CORE_VERSION_INFO, [7:1:0]) AC_SUBST(LIBAVAHI_CLIENT_VERSION_INFO, [5:8:2]) AC_SUBST(LIBAVAHI_GLIB_VERSION_INFO, [1:2:0]) -AC_SUBST(LIBAVAHI_GOBJECT_VERSION_INFO, [0:3:0]) +AC_SUBST(LIBAVAHI_GOBJECT_VERSION_INFO, [0:4:0]) AC_SUBST(LIBAVAHI_QT3_VERSION_INFO, [1:2:0]) AC_SUBST(LIBAVAHI_QT4_VERSION_INFO, [1:2:0]) -AC_SUBST(LIBAVAHI_UI_VERSION_INFO, [1:3:1]) +AC_SUBST(LIBAVAHI_UI_VERSION_INFO, [1:4:1]) # Do not touch these, since they we took this version-info from upstream HOWL/Bonjour AC_SUBST(LIBAVAHI_COMPAT_LIBDNS_SD_VERSION_INFO, [1:0:0]) @@ -1,3 +1,16 @@ +Avahi 0.6.29 +============ + +This is a bugfix release. + + * Updates regarding systemd integration + * Compatibility with newer gtk3 and gobject introspection + * i18n updates + * Minor other updates + * Fix CVE-2011-1002, fixing the fix for CVE-2010-2244 + +This release is backwards compatible with Avahi 0.6.x with x < 29. + Avahi 0.6.28 ============ diff --git a/initscript/suse/avahi-daemon.in b/initscript/suse/avahi-daemon.in index 851006c..0dc5f9f 100644 --- a/initscript/suse/avahi-daemon.in +++ b/initscript/suse/avahi-daemon.in @@ -2,6 +2,7 @@ ### BEGIN INIT INFO # Provides: avahi # Required-Start: $network $remote_fs dbus +# Required-Stop: $network $remote_fs dbus # Default-Start: 3 5 # Default-Stop: # Short-Description: ZeroConf daemon @@ -25,6 +26,18 @@ case "$1" in $AVAHI_BIN -k 2>/dev/null || /bin/true rc_status -v ;; + try-restart|condrestart) + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset + fi + rc_status + ;; restart) $0 stop $0 start @@ -41,7 +54,7 @@ case "$1" in rc_status -v ;; *) - echo "Usage: $0 {start|stop|status|restart|force-reload|reload}" + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}" exit 1 ;; esac diff --git a/initscript/suse/avahi-dnsconfd.in b/initscript/suse/avahi-dnsconfd.in index e633b8d..b88660b 100644 --- a/initscript/suse/avahi-dnsconfd.in +++ b/initscript/suse/avahi-dnsconfd.in @@ -2,6 +2,7 @@ ### BEGIN INIT INFO # Provides: avahi-dnsconfd # Required-Start: $remote_fs avahi +# Required-Stop: $remote_fs avahi # Default-Start: 3 5 # Default-Stop: # Short-Description: ZeroConf daemon @@ -30,6 +31,18 @@ case "$1" in $0 start rc_status ;; + try-restart|condrestart) + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset + fi + rc_status + ;; force-reload|reload) echo -n "Reloading Avahi DNS Configuration daemon " $AVAHI_BIN -r @@ -37,11 +50,11 @@ case "$1" in ;; status) echo -n "Checking for Avahi DNS Configuration daemon: " - $AVAHI_BIN -c + $AVAHI_BIN -c || _rc_status=3 rc_status -v ;; *) - echo "Usage: $0 {start|stop|status|restart|force-reload|reload}" + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload}" exit 1 ;; esac diff --git a/man/avahi-autoipd.8.xml.in b/man/avahi-autoipd.8.xml.in index 477beb8..7137c30 100644 --- a/man/avahi-autoipd.8.xml.in +++ b/man/avahi-autoipd.8.xml.in @@ -69,7 +69,7 @@ <option> <p><opt>-r | --refresh</opt></p> - <optdesc><p>Tell an already running avahi-autoipd to reannounce the acquired IP address on the specified network interface. (Equivalent to sending a SIGHUP)</p></optdesc> + <optdesc><p>Tell an already running avahi-autoipd to re-announce the acquired IP address on the specified network interface. (Equivalent to sending a SIGHUP)</p></optdesc> </option> <option> @@ -104,7 +104,7 @@ <option> <p><opt>-w | --wait</opt></p> - <optdesc><p>Wait until a IP address has been sucessfully acquired before detaching. Only valid in combination with <opt>--daemonize</opt>.</p></optdesc> + <optdesc><p>Wait until a IP address has been successfully acquired before detaching. Only valid in combination with <opt>--daemonize</opt>.</p></optdesc> </option> <option> @@ -139,8 +139,8 @@ </section> <section name="Signals"> - <p><arg>SIGINT, SIGTERM, SIGQUIT</arg>: avahi-autoipd will shutdown. (Same as <opt>--kill</opt>)</p> - <p><arg>SIGHUP</arg>: avahi-autoipd will reannounce the acquired IP address. (Same as <opt>--refresh</opt>)</p> + <p><arg>SIGINT, SIGTERM</arg>: avahi-autoipd will shutdown. (Same as <opt>--kill</opt>)</p> + <p><arg>SIGHUP</arg>: avahi-autoipd will re-announce the acquired IP address. (Same as <opt>--refresh</opt>)</p> </section> <section name="Authors"> diff --git a/man/avahi-autoipd.action.8.xml.in b/man/avahi-autoipd.action.8.xml.in index 9dea446..5e4986f 100644 --- a/man/avahi-autoipd.action.8.xml.in +++ b/man/avahi-autoipd.action.8.xml.in @@ -40,7 +40,7 @@ <option> <p><opt>argv[1]</opt> An event string: one of BIND, CONFLICT, UNBIND or STOP. If BIND is passed an IP address has been - sucessfully acquired and the script shall add it to the + successfully acquired and the script shall add it to the network interface. If CONFLICT is passed avahi-autopid detected a IP address on the local network, the action script should remove the configured IP address. If UNBIND is passed diff --git a/man/avahi-daemon.8.xml.in b/man/avahi-daemon.8.xml.in index e93fc73..0c2990d 100644 --- a/man/avahi-daemon.8.xml.in +++ b/man/avahi-daemon.8.xml.in @@ -142,7 +142,7 @@ </section> <section name="Signals"> - <p><arg>SIGINT, SIGTERM, SIGQUIT</arg>: avahi-daemon will shutdown. (Same as <opt>--kill</opt>).</p> + <p><arg>SIGINT, SIGTERM</arg>: avahi-daemon will shutdown. (Same as <opt>--kill</opt>).</p> <p><arg>SIGHUP</arg>: avahi-daemon will reload unicast DNS server data from <file>/etc/resolv.conf</file> and static service definitions from <file>@servicedir@/</file>. (Same as <opt>--reload</opt>)</p> diff --git a/man/avahi-dnsconfd.8.xml.in b/man/avahi-dnsconfd.8.xml.in index e01ab44..7b09cd4 100644 --- a/man/avahi-dnsconfd.8.xml.in +++ b/man/avahi-dnsconfd.8.xml.in @@ -84,7 +84,7 @@ </section> <section name="Signals"> - <p><arg>SIGINT, SIGTERM, SIGQUIT</arg>: avahi-dnsconfd will shutdown. This is issued by passing --kill to avahi-daemon.</p> + <p><arg>SIGINT, SIGTERM</arg>: avahi-dnsconfd will shutdown. This is issued by passing --kill to avahi-daemon.</p> <p><arg>SIGHUP</arg>: avahi-dnsconfd will refresh the DNS server data.</p> </section> |