]> git.meshlink.io Git - catta/commitdiff
Merge remote branch 'origin/master-tx'
authorLennart Poettering <lennart@poettering.net>
Tue, 13 Jul 2010 01:01:51 +0000 (03:01 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 13 Jul 2010 01:01:51 +0000 (03:01 +0200)
avahi-daemon/avahi-daemon.service.in
avahi-daemon/avahi-daemon.socket.in
avahi-daemon/main.c
avahi-daemon/sd-daemon.c
avahi-dnsconfd/avahi-dnsconfd.service.in
configure.ac
initscript/lfs/Makefile.am

index d5a9dd4fab4d8f3c7ccafffc04bbc58d9b2e1143..6f05b4a187a40fb101899571016d8a34a78670d6 100644 (file)
 # USA.
 
 [Unit]
-Requires=basic.target avahi-daemon.socket
-After=basic.target syslog.target avahi-daemon.socket
-Conflicts=shutdown.target
+Description=Avahi mDNS/DNS-SD Stack
+Requires=avahi-daemon.socket
+After=syslog.target
 
 [Service]
 Type=dbus
 BusName=org.freedesktop.Avahi
 ExecStart=@sbindir@/avahi-daemon -s
 ExecReload=@sbindir@/avahi-daemon -r
+NotifyAccess=main
 
 [Install]
 WantedBy=multi-user.target
index b8e6b79518fcad419901a77b6e16a18f0bbcb8e8..13309b8998242f3da08651c88cd27f16f230c683 100644 (file)
@@ -16,9 +16,7 @@
 # USA.
 
 [Unit]
-After=sysinit.target
-Before=sockets.target
-Conflicts=shutdown.target
+Description=Avahi mDNS/DNS-SD Stack Activation Socket
 
 [Socket]
 ListenStream=@avahi_runtime_dir@/avahi-daemon/socket
index 8bd856eee68a84a8bb5175e2fd7354eb39e357bb..1e8b2559173a8bcef3147c2864c3f32ddfb87c4d 100644 (file)
@@ -354,7 +354,7 @@ static void server_callback(AvahiServer *s, AvahiServerState state, void *userda
     switch (state) {
         case AVAHI_SERVER_RUNNING:
             avahi_log_info("Server startup complete. Host name is %s. Local service cookie is %u.", avahi_server_get_host_name_fqdn(s), avahi_server_get_local_service_cookie(s));
-
+            sd_notifyf(0, "STATUS=Server startup complete. Host name is %s. Local service cookie is %u.", avahi_server_get_host_name_fqdn(s), avahi_server_get_local_service_cookie(s));
             avahi_set_proc_title(argv0, "%s: running [%s]", argv0, avahi_server_get_host_name_fqdn(s));
 
             static_service_add_to_server();
@@ -374,14 +374,16 @@ static void server_callback(AvahiServer *s, AvahiServerState state, void *userda
         case AVAHI_SERVER_COLLISION: {
             char *n;
 
-            avahi_set_proc_title(argv0, "%s: collision", argv0);
-
             static_service_remove_from_server();
             static_hosts_remove_from_server();
             remove_dns_server_entry_groups();
 
             n = avahi_alternative_host_name(avahi_server_get_host_name(s));
-            avahi_log_warn("Host name conflict, retrying with <%s>", n);
+
+            avahi_log_warn("Host name conflict, retrying with %s", n);
+            sd_notifyf(0, "STATUS=Host name conflict, retrying with %s", n);
+            avahi_set_proc_title(argv0, "%s: collision [%s]", argv0, n);
+
             avahi_server_set_host_name(s, n);
             avahi_free(n);
 
@@ -391,11 +393,14 @@ static void server_callback(AvahiServer *s, AvahiServerState state, void *userda
         case AVAHI_SERVER_FAILURE:
 
             avahi_log_error("Server error: %s", avahi_strerror(avahi_server_errno(s)));
+            sd_notifyf(0, "STATUS=Server error: %s", avahi_strerror(avahi_server_errno(s)));
+
             avahi_simple_poll_quit(simple_poll_api);
             break;
 
         case AVAHI_SERVER_REGISTERING:
 
+            sd_notifyf(0, "STATUS=Registering host name %s", avahi_server_get_host_name_fqdn(s));
             avahi_set_proc_title(argv0, "%s: registering [%s]", argv0, avahi_server_get_host_name_fqdn(s));
 
             static_service_remove_from_server();
@@ -1070,6 +1075,16 @@ static void signal_callback(AvahiWatch *watch, AVAHI_GCC_UNUSED int fd, AVAHI_GC
 /* Imported from ../avahi-client/nss-check.c */
 int avahi_nss_support(void);
 
+static void ignore_signal(int sig)  {
+    struct sigaction sa;
+
+    memset(&sa, 0, sizeof(sa));
+    sa.sa_handler = SIG_IGN;
+    sa.sa_flags = SA_RESTART;
+
+    sigaction(sig, &sa, NULL);
+}
+
 static int run_server(DaemonConfig *c) {
     int r = -1;
     int error;
@@ -1086,6 +1101,8 @@ static int run_server(DaemonConfig *c) {
 
     assert(c);
 
+    ignore_signal(SIGPIPE);
+
     if (!(nss_support = avahi_nss_support()))
         avahi_log_warn("WARNING: No NSS support for mDNS detected, consider installing nss-mdns!");
 
@@ -1212,6 +1229,7 @@ static int run_server(DaemonConfig *c) {
             break;
     }
 
+    r = 0;
 
 finish:
 
@@ -1568,6 +1586,9 @@ int main(int argc, char *argv[]) {
             if (daemon_close_all(-1) < 0)
                 avahi_log_warn("Failed to close all remaining file descriptors: %s", strerror(errno));
 
+        daemon_reset_sigs(-1);
+        daemon_unblock_sigs(-1);
+
         if (make_runtime_dir() < 0)
             goto finish;
 
@@ -1610,11 +1631,14 @@ int main(int argc, char *argv[]) {
             }
 #endif
         avahi_log_info("%s "PACKAGE_VERSION" starting up.", argv0);
-
+        sd_notifyf(0, "STATUS=%s "PACKAGE_VERSION" starting up.", argv0);
         avahi_set_proc_title(argv0, "%s: starting up", argv0);
 
         if (run_server(&config) == 0)
             r = 0;
+
+        avahi_log_info("%s "PACKAGE_VERSION" exiting.", argv0);
+        sd_notifyf(0, "STATUS=%s "PACKAGE_VERSION" exiting.", argv0);
     }
 
 finish:
index cb568b5e65194a08ea088d8bf03e60f7c1095220..3bb258d3418570fe6c5ac8540c47c089a77b703e 100644 (file)
@@ -141,7 +141,7 @@ int sd_is_fifo(int fd, const char *path) {
                 struct stat st_path;
 
                 memset(&st_path, 0, sizeof(st_path));
-                if (fstat(fd, &st_path) < 0) {
+                if (stat(path, &st_path) < 0) {
 
                         if (errno == ENOENT || errno == ENOTDIR)
                                 return 0;
@@ -381,7 +381,11 @@ int sd_notify(int unset_environment, const char *state) {
 
         memset(&msghdr, 0, sizeof(msghdr));
         msghdr.msg_name = &sockaddr;
-        msghdr.msg_namelen = sizeof(struct sockaddr_un);
+        msghdr.msg_namelen = sizeof(sa_family_t) + strlen(e);
+
+        if (msghdr.msg_namelen > sizeof(struct sockaddr_un))
+                msghdr.msg_namelen = sizeof(struct sockaddr_un);
+
         msghdr.msg_iov = &iovec;
         msghdr.msg_iovlen = 1;
         msghdr.msg_control = &control;
index 2db23d1814267e07bfff193df07afe25575d1f57..bd12b7ef93bdb3e0abdd4600f486dcde9b6d36fd 100644 (file)
@@ -16,9 +16,9 @@
 # USA.
 
 [Unit]
-Requires=basic.target avahi-daemon.socket avahi-daemon.service
-After=basic.target syslog.target avahi-daemon.socket
-Conflicts=shutdown.target
+Description=Avahi DNS Configuration Daemon
+Requires=avahi-daemon.socket avahi-daemon.service
+After=syslog.target avahi-daemon.socket
 
 [Service]
 Type=simple
index 73f5528ea32b17ae357ee51b7edeb2ad6427db11..4d6b2884de9bf4a7d3f1f573118839aa4ecfd12c 100644 (file)
@@ -564,7 +564,7 @@ if test "x$HAVE_GTK3" = "xyes" ; then
 fi
 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
 
-AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK2" = "xyes" )
+AM_CONDITIONAL(HAVE_GTK2OR3, test "x$HAVE_GTK3" = "xyes" -o "x$HAVE_GTK" = "xyes" )
 
 #
 # D-Bus
index e8386e8a56b8bb1e562bbf62b8dd1618b462705b..ed8dcb8a5db72934924a07f65812d5c56e743612 100644 (file)
@@ -24,4 +24,8 @@ initd_SCRIPTS = avahi
 CLEANFILES = avahi
 
 avahi: avahi.in
+       $(AM_V_GEN)sed \
+               -e 's,@sbindir\@,$(sbindir),g' \
+               -e 's,@localstatedir\@,$(localstatedir),g' \
+               $< > $@ && \
        chmod +x $@