From 6ecd227ceadc32ed229246aa61df6361c7b58a95 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 8 Nov 2005 21:56:28 +0000 Subject: * add new flags parameter to avahi_client_new() * introduce flags AVAHI_CLIENT_NO_FAIL and AVAHI_CLIENT_IGNORE_USER_CONFIG * beef up avahi-browse to show how AVAHI_CLIENT_NO_FAIL may be used: add a new parameter "-f" which tells avahi-browse to stay running when the daemon disconnects from DBUS and reconnect when it reappears. For now dbus-daemon restarts are not handled and result in an AVAHI_CLIENT_FAIL event. git-svn-id: file:///home/lennart/svn/public/avahi/trunk@937 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-client/browser.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'avahi-client/browser.c') diff --git a/avahi-client/browser.c b/avahi-client/browser.c index bf9c15f..c9af43f 100644 --- a/avahi-client/browser.c +++ b/avahi-client/browser.c @@ -125,7 +125,7 @@ AvahiDomainBrowser* avahi_domain_browser_new( dbus_error_init (&error); - if (client->state == AVAHI_CLIENT_FAILURE) { + if (!avahi_client_is_connected(client)) { avahi_client_set_errno(client, AVAHI_ERR_BAD_STATE); goto fail; } @@ -150,8 +150,10 @@ AvahiDomainBrowser* avahi_domain_browser_new( AVAHI_LLIST_PREPEND(AvahiDomainBrowser, domain_browsers, client->domain_browsers, db); - parse_environment(db); - parse_domain_file(db); + if (!(client->flags & AVAHI_CLIENT_IGNORE_USER_CONFIG)) { + parse_environment(db); + parse_domain_file(db); + } db->static_browse_domains = avahi_string_list_reverse(db->static_browse_domains); @@ -248,7 +250,7 @@ int avahi_domain_browser_free (AvahiDomainBrowser *b) { client = b->client; - if (b->path && client->state != AVAHI_CLIENT_FAILURE) + if (b->path && avahi_client_is_connected(b->client)) r = avahi_client_simple_method_call(client, b->path, AVAHI_DBUS_INTERFACE_DOMAIN_BROWSER, "Free"); AVAHI_LLIST_REMOVE(AvahiDomainBrowser, domain_browsers, client->domain_browsers, b); @@ -367,7 +369,7 @@ AvahiServiceTypeBrowser* avahi_service_type_browser_new( dbus_error_init(&error); - if (client->state == AVAHI_CLIENT_FAILURE) { + if (!avahi_client_is_connected(client)) { avahi_client_set_errno(client, AVAHI_ERR_BAD_STATE); goto fail; } @@ -473,7 +475,7 @@ int avahi_service_type_browser_free (AvahiServiceTypeBrowser *b) { assert(b); client = b->client; - if (b->path && client->state != AVAHI_CLIENT_FAILURE) + if (b->path && avahi_client_is_connected(b->client)) r = avahi_client_simple_method_call(client, b->path, AVAHI_DBUS_INTERFACE_SERVICE_TYPE_BROWSER, "Free"); AVAHI_LLIST_REMOVE(AvahiServiceTypeBrowser, service_type_browsers, b->client->service_type_browsers, b); @@ -583,7 +585,7 @@ AvahiServiceBrowser* avahi_service_browser_new( dbus_error_init(&error); - if (client->state == AVAHI_CLIENT_FAILURE) { + if (!avahi_client_is_connected(client)) { avahi_client_set_errno(client, AVAHI_ERR_BAD_STATE); goto fail; } @@ -694,7 +696,7 @@ int avahi_service_browser_free (AvahiServiceBrowser *b) { assert(b); client = b->client; - if (b->path && client->state != AVAHI_CLIENT_FAILURE) + if (b->path && avahi_client_is_connected(b->client)) r = avahi_client_simple_method_call(client, b->path, AVAHI_DBUS_INTERFACE_SERVICE_BROWSER, "Free"); AVAHI_LLIST_REMOVE(AvahiServiceBrowser, service_browsers, b->client->service_browsers, b); -- cgit