packages: avahi/avahi-client.patch (NEW) - Add avahi-client patch from debi...

japhy japhy at pld-linux.org
Thu Oct 7 17:52:11 CEST 2010


Author: japhy                        Date: Thu Oct  7 15:52:10 2010 GMT
Module: packages                      Tag: HEAD
---- Log message:
- Add avahi-client patch from debian (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=590760)

---- Files affected:
packages/avahi:
   avahi-client.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/avahi/avahi-client.patch
diff -u /dev/null packages/avahi/avahi-client.patch:1.1
--- /dev/null	Thu Oct  7 17:52:11 2010
+++ packages/avahi/avahi-client.patch	Thu Oct  7 17:52:05 2010
@@ -0,0 +1,69 @@
+From 55c732acd013b6ac979b6e1f5432a301481879ca Mon Sep 17 00:00:00 2001
+From: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
+Date: Sun, 15 Aug 2010 22:56:49 +0100
+Subject: [PATCH] Check if the deamon isn't already running
+
+---
+ avahi-client/client.c |   29 +++++++++++++++++++++++++----
+ 1 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/avahi-client/client.c b/avahi-client/client.c
+index be675ad..c7ece4a 100644
+--- a/avahi-client/client.c
++++ b/avahi-client/client.c
+@@ -478,6 +478,7 @@ static DBusConnection* avahi_dbus_bus_get(DBusError *error) {
+ AvahiClient *avahi_client_new(const AvahiPoll *poll_api, AvahiClientFlags flags, AvahiClientCallback callback, void *userdata, int *ret_error) {
+     AvahiClient *client = NULL;
+     DBusError error;
++    int daemon_running = 0;
+ 
+     avahi_init_i18n();
+ 
+@@ -560,12 +561,33 @@ AvahiClient *avahi_client_new(const AvahiPoll *poll_api, AvahiClientFlags flags,
+     if (dbus_error_is_set(&error))
+         goto fail;
+ 
+-    if (!dbus_bus_start_service_by_name(client->bus, AVAHI_DBUS_NAME, 0, NULL, &error)) {
+ 
+-        /* We free the error so its not set, that way the fail target
+-         * will return the NO_DAEMON error rather than a DBUS error */
++    /* Check if the process already exists on the bus, otherwise try to start
++     * it. */
++    if (!dbus_bus_name_has_owner (client->bus, AVAHI_DBUS_NAME, &error)) {
++      dbus_error_free(&error);
++      daemon_running = 0;
++    } else {
++      daemon_running = 1;
++    }
++
++    if (!daemon_running &&
++        !dbus_bus_start_service_by_name(client->bus,
++          AVAHI_DBUS_NAME, 0, NULL, &error)) {
+         dbus_error_free(&error);
++    } else {
++      daemon_running = 1;
++    }
+ 
++    /* Re-check something else didn't start the daemon */
++    if (!daemon_running &&
++        !dbus_bus_name_has_owner (client->bus, AVAHI_DBUS_NAME, &error)) {
++      dbus_error_free(&error);
++    } else {
++      daemon_running = 1;
++    }
++
++    if (!daemon_running) {
+         if (!(flags & AVAHI_CLIENT_NO_FAIL)) {
+ 
+             if (ret_error)
+@@ -577,7 +599,6 @@ AvahiClient *avahi_client_new(const AvahiPoll *poll_api, AvahiClientFlags flags,
+         /* The user doesn't want this call to fail if the daemon is not
+          * available, so let's return succesfully */
+         client_set_state(client, AVAHI_CLIENT_CONNECTING);
+-
+     } else {
+ 
+         if (init_server(client, ret_error) < 0)
+-- 
+1.7.1
+
================================================================


More information about the pld-cvs-commit mailing list