summaryrefslogtreecommitdiffstats
path: root/avahi-client
diff options
context:
space:
mode:
authorTrent Lloyd <lathiat@bur.st>2005-08-14 12:06:09 +0000
committerTrent Lloyd <lathiat@bur.st>2005-08-14 12:06:09 +0000
commit3d2e63d2c5c351dde38b24a45a679ce819ed0e41 (patch)
treef3d990a2572bca040761f82167c309851e9c1f1a /avahi-client
parent77dc1cb05c8e6d23bd9cea37d4b4644cd76f0f82 (diff)
* 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
Diffstat (limited to 'avahi-client')
-rw-r--r--avahi-client/browser.c38
-rw-r--r--avahi-client/client.h9
-rw-r--r--avahi-client/entrygroup.c22
3 files changed, 52 insertions, 17 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*
diff --git a/avahi-client/client.h b/avahi-client/client.h
index 824f1e9..16e9998 100644
--- a/avahi-client/client.h
+++ b/avahi-client/client.h
@@ -84,6 +84,9 @@ char* avahi_client_get_host_name_fqdn (AvahiClient*);
/** Create a new AvahiEntryGroup object */
AvahiEntryGroup* avahi_entry_group_new (AvahiClient*, AvahiEntryGroupCallback callback, void *user_data);
+/** Clean up and free an AvahiEntryGroup object */
+int avahi_entry_group_free (AvahiEntryGroup *);
+
/** Commit an AvahiEntryGroup */
int avahi_entry_group_commit (AvahiEntryGroup*);
@@ -130,7 +133,7 @@ AvahiDomainBrowser* avahi_domain_browser_new (AvahiClient *client,
char* avahi_domain_browser_path (AvahiDomainBrowser *);
/** Cleans up and frees an AvahiDomainBrowser object */
-void avahi_domain_browser_free (AvahiDomainBrowser *);
+int avahi_domain_browser_free (AvahiDomainBrowser *);
/** Browse for service types on the local network */
AvahiServiceTypeBrowser* avahi_service_type_browser_new (
@@ -145,7 +148,7 @@ AvahiServiceTypeBrowser* avahi_service_type_browser_new (
char* avahi_service_type_browser_path (AvahiServiceTypeBrowser *);
/** Cleans up and frees an AvahiServiceTypeBrowser object */
-void avahi_service_type_browser_free (AvahiServiceTypeBrowser *);
+int avahi_service_type_browser_free (AvahiServiceTypeBrowser *);
/** Browse for services of a type on the local network */
AvahiServiceBrowser* avahi_service_browser_new (
@@ -161,7 +164,7 @@ AvahiServiceBrowser* avahi_service_browser_new (
char* avahi_service_browser_path (AvahiServiceBrowser *);
/* Cleans up and frees an AvahiServiceBrowser object */
-void avahi_service_browser_free (AvahiServiceBrowser *);
+int avahi_service_browser_free (AvahiServiceBrowser *);
#ifndef DOXYGEN_SHOULD_SKIP_THIS
AVAHI_C_DECL_END
diff --git a/avahi-client/entrygroup.c b/avahi-client/entrygroup.c
index ea56ee2..8120e49 100644
--- a/avahi-client/entrygroup.c
+++ b/avahi-client/entrygroup.c
@@ -114,6 +114,28 @@ fail:
}
int
+avahi_entry_group_free (AvahiEntryGroup *group)
+{
+ AvahiClient *client = group->client;
+ DBusMessage *message;
+
+ if (group == NULL || group->path == NULL)
+ return avahi_client_set_errno (client, AVAHI_ERR_INVALID_OBJECT);
+
+ message = dbus_message_new_method_call (AVAHI_DBUS_NAME,
+ group->path, AVAHI_DBUS_INTERFACE_ENTRY_GROUP, "Free");
+
+ if (message == NULL)
+ return avahi_client_set_errno (client, AVAHI_ERR_DBUS_ERROR);
+
+ dbus_connection_send (client->bus, message, NULL);
+
+ free (group);
+
+ return avahi_client_set_errno (client, AVAHI_OK);
+}
+
+int
avahi_entry_group_commit (AvahiEntryGroup *group)
{
DBusMessage *message;