summaryrefslogtreecommitdiffstats
path: root/avahi-client/client.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-07-13 05:01:47 +0200
committerLennart Poettering <lennart@poettering.net>2010-07-13 05:01:47 +0200
commit25f352679488de6f22486bd068ea3cd448e8f1ac (patch)
tree8359c48266e898ebbdc9fc1d98ffb9484a85190a /avahi-client/client.c
parentfe8f5ec6f8e86c6eea88dd196fbcb60deeef0795 (diff)
client: update libavahi-client so that it can deal with auto-activated avahi daemons
Diffstat (limited to 'avahi-client/client.c')
-rw-r--r--avahi-client/client.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/avahi-client/client.c b/avahi-client/client.c
index 6435723..2b29480 100644
--- a/avahi-client/client.c
+++ b/avahi-client/client.c
@@ -141,9 +141,10 @@ static DBusHandlerResult filter_func(DBusConnection *bus, DBusMessage *message,
if (strcmp(name, AVAHI_DBUS_NAME) == 0) {
- if (avahi_client_is_connected(client)) {
+ if (old[0] &&
+ avahi_client_is_connected(client)) {
- /* Regardless if the server lost or acquired its name or
+ /* Regardless if the server lost its name or
* if the name was transfered: our services are no longer
* available, so we disconnect ourselves */
avahi_client_set_errno(client, AVAHI_ERR_DISCONNECTED);
@@ -522,7 +523,7 @@ AvahiClient *avahi_client_new(const AvahiPoll *poll_api, AvahiClientFlags flags,
goto fail;
}
- if (!dbus_connection_add_filter (client->bus, filter_func, client, NULL)) {
+ if (!dbus_connection_add_filter(client->bus, filter_func, client, NULL)) {
if (ret_error)
*ret_error = AVAHI_ERR_NO_MEMORY;
goto fail;
@@ -559,9 +560,7 @@ AvahiClient *avahi_client_new(const AvahiPoll *poll_api, AvahiClientFlags flags,
if (dbus_error_is_set(&error))
goto fail;
-
- if (!(dbus_bus_name_has_owner(client->bus, AVAHI_DBUS_NAME, &error)) ||
- dbus_error_is_set(&error)) {
+ 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 */