From 3d2e63d2c5c351dde38b24a45a679ce819ed0e41 Mon Sep 17 00:00:00 2001 From: Trent Lloyd Date: Sun, 14 Aug 2005 12:06:09 +0000 Subject: * Add a free function for AvahiEntryGroup in C api * Modify the browser free functions to return/set errors. git-svn-id: file:///home/lennart/svn/public/avahi/trunk@320 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-client/browser.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'avahi-client/browser.c') diff --git a/avahi-client/browser.c b/avahi-client/browser.c index 6e0ed5d..ab7a921 100644 --- a/avahi-client/browser.c +++ b/avahi-client/browser.c @@ -88,25 +88,29 @@ dbus_error: return NULL; } -void +int avahi_domain_browser_free (AvahiDomainBrowser *b) { + AvahiClient *client = b->client; DBusMessage *message = NULL; if (b == NULL || b->path == NULL) - return; + return avahi_client_set_errno (client, AVAHI_ERR_INVALID_OBJECT); message = dbus_message_new_method_call (AVAHI_DBUS_NAME, b->path, AVAHI_DBUS_INTERFACE_DOMAIN_BROWSER, "Free"); - dbus_connection_send (b->client->bus, message, NULL); + if (message == NULL) + return avahi_client_set_errno (client, AVAHI_ERR_DBUS_ERROR); + + dbus_connection_send (client->bus, message, NULL); - AVAHI_LLIST_REMOVE(AvahiDomainBrowser, domain_browsers, b->client->domain_browsers, b); + AVAHI_LLIST_REMOVE(AvahiDomainBrowser, domain_browsers, client->domain_browsers, b); free (b); - return; + return avahi_client_set_errno (client, AVAHI_OK); } char* @@ -207,25 +211,29 @@ dbus_error: return NULL; } -void +int avahi_service_type_browser_free (AvahiServiceTypeBrowser *b) { + AvahiClient *client = b->client; DBusMessage *message = NULL; if (b == NULL || b->path == NULL) - return; + return avahi_client_set_errno (client, AVAHI_ERR_INVALID_OBJECT); message = dbus_message_new_method_call (AVAHI_DBUS_NAME, b->path, AVAHI_DBUS_INTERFACE_SERVICE_TYPE_BROWSER, "Free"); + if (message == NULL) + return avahi_client_set_errno (client, AVAHI_ERR_DBUS_ERROR); + dbus_connection_send (b->client->bus, message, NULL); AVAHI_LLIST_REMOVE(AvahiServiceTypeBrowser, service_type_browsers, b->client->service_type_browsers, b); free (b); - return; + return avahi_client_set_errno (client, AVAHI_OK); } char* @@ -334,27 +342,29 @@ dbus_error: return NULL; } -void +int avahi_service_browser_free (AvahiServiceBrowser *b) { + AvahiClient *client = b->client; DBusMessage *message = NULL; - + if (b == NULL || b->path == NULL) - return; - - printf ("Freeing %s\n", b->path); + return avahi_client_set_errno (client, AVAHI_ERR_INVALID_OBJECT); message = dbus_message_new_method_call (AVAHI_DBUS_NAME, b->path, AVAHI_DBUS_INTERFACE_SERVICE_BROWSER, "Free"); + if (message == NULL) + return avahi_client_set_errno (client, AVAHI_ERR_DBUS_ERROR); + dbus_connection_send (b->client->bus, message, NULL); AVAHI_LLIST_REMOVE(AvahiServiceBrowser, service_browsers, b->client->service_browsers, b); free (b); - return; + return avahi_client_set_errno (client, AVAHI_OK); } char* -- cgit