diff options
author | Trent Lloyd <lathiat@bur.st> | 2005-08-14 12:18:03 +0000 |
---|---|---|
committer | Trent Lloyd <lathiat@bur.st> | 2005-08-14 12:18:03 +0000 |
commit | 24e661eb636f6397b4a149156f451cb551d32013 (patch) | |
tree | c88b262046cb037447b9ff2eb2bf2d28d126348e | |
parent | 7dfbaa097e99373e6eec03f07c43c046b94481f8 (diff) |
* Remove AvahiEntryGroups from the client's list when we free it
* Add a test for AvahiEntryGroup free()
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@322 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
-rw-r--r-- | avahi-client/client-test.c | 15 | ||||
-rw-r--r-- | avahi-client/entrygroup.c | 2 |
2 files changed, 14 insertions, 3 deletions
diff --git a/avahi-client/client-test.c b/avahi-client/client-test.c index 3dab390..352ee58 100644 --- a/avahi-client/client-test.c +++ b/avahi-client/client-test.c @@ -59,14 +59,22 @@ avahi_service_type_browser_callback (AvahiServiceTypeBrowser *b, AvahiIfIndex in } gboolean -test_free (gpointer data) +test_free_domain_browser (gpointer data) { - printf ("XXX: freeing\n"); + printf ("XXX: freeing domain browser\n"); AvahiServiceBrowser *b = data; avahi_service_browser_free (b); return FALSE; } +gboolean +test_free_entry_group (gpointer data) +{ + printf ("XXX: freeing entry group\n"); + AvahiEntryGroup *g = data; + avahi_entry_group_free (g); + return FALSE; +} int main (int argc, char *argv[]) { @@ -134,7 +142,8 @@ main (int argc, char *argv[]) else printf ("Sucessfully created service browser, path %s\n", avahi_service_browser_path (sb)); - g_timeout_add (2000, test_free, sb); + g_timeout_add (2000, test_free_entry_group, group); + g_timeout_add (5000, test_free_domain_browser, sb); g_main_loop_run (loop); diff --git a/avahi-client/entrygroup.c b/avahi-client/entrygroup.c index 26ae75a..2748d86 100644 --- a/avahi-client/entrygroup.c +++ b/avahi-client/entrygroup.c @@ -126,6 +126,8 @@ avahi_entry_group_free (AvahiEntryGroup *group) return avahi_client_set_errno (client, AVAHI_ERR_DBUS_ERROR); dbus_connection_send (client->bus, message, NULL); + + AVAHI_LLIST_REMOVE(AvahiEntryGroup, groups, client->groups, group); free (group); |