]> git.meshlink.io Git - catta/blobdiff - avahi-gobject/ga-entry-group.c
fix avahi_netlink_new to allow multiple netlinks per process
[catta] / avahi-gobject / ga-entry-group.c
index 1a17fd42f4a36d53fc2c25b9372f93407f9bf9de..101acbffbea5bb31047dd5b581f81553e24c5978 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * ga-entry-group.c - Source for GaEntryGroup
- * Copyright (C) 2005 Collabora Ltd.
+ * Copyright (C) 2006-2007 Collabora Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -185,7 +185,7 @@ static void _free_service(gpointer data) {
 
 static GQuark detail_for_state(AvahiEntryGroupState state) {
     static struct {
-        AvahiClientState state;
+        AvahiEntryGroupState state;
         const gchar *name;
         GQuark quark;
     } states[] = {
@@ -556,8 +556,12 @@ gboolean ga_entry_group_service_set_arbitrary(GaEntryGroupService * service,
 gboolean ga_entry_group_service_remove_key(GaEntryGroupService * service,
                                   const gchar * key, GError ** error) {
     GaEntryGroupServicePrivate *priv = (GaEntryGroupServicePrivate *) service;
+    GaEntryGroupServiceEntry entry;
 
-    g_hash_table_remove(priv->entries, key);
+    entry.value = (void*) key;
+    entry.size = strlen(key);
+
+    g_hash_table_remove(priv->entries, &entry);
 
     if (!priv->frozen)
         return ga_entry_group_service_thaw(service, error);
@@ -570,6 +574,7 @@ gboolean ga_entry_group_attach(GaEntryGroup * group,
                       GaClient * client, GError ** error) {
     GaEntryGroupPrivate *priv = GA_ENTRY_GROUP_GET_PRIVATE(group);
 
+    g_return_val_if_fail(client->avahi_client, FALSE);
     g_assert(priv->client == NULL || priv->client == client);
     g_assert(priv->group == NULL);