summaryrefslogtreecommitdiffstats
path: root/avahi-client/browser.c
diff options
context:
space:
mode:
Diffstat (limited to 'avahi-client/browser.c')
-rw-r--r--avahi-client/browser.c38
1 files changed, 24 insertions, 14 deletions
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*