diff options
author | Lennart Poettering <lennart@poettering.net> | 2010-07-13 05:01:47 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2010-07-13 05:01:47 +0200 |
commit | 25f352679488de6f22486bd068ea3cd448e8f1ac (patch) | |
tree | 8359c48266e898ebbdc9fc1d98ffb9484a85190a /avahi-client/client.c | |
parent | fe8f5ec6f8e86c6eea88dd196fbcb60deeef0795 (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.c | 11 |
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 */ |