]> git.pld-linux.org Git - packages/avahi.git/commitdiff
- Add avahi-client patch from debian (see http://bugs.debian.org/cgi-bin/bugreport...
authorjaphy <japhy@pld-linux.org>
Thu, 7 Oct 2010 15:52:05 +0000 (15:52 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    avahi-client.patch -> 1.1

avahi-client.patch [new file with mode: 0644]

diff --git a/avahi-client.patch b/avahi-client.patch
new file mode 100644 (file)
index 0000000..7a384db
--- /dev/null
@@ -0,0 +1,69 @@
+From 55c732acd013b6ac979b6e1f5432a301481879ca Mon Sep 17 00:00:00 2001
+From: Sjoerd Simons <sjoerd.simons@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
+
This page took 0.084831 seconds and 4 git commands to generate.