]> git.meshlink.io Git - catta/blobdiff - avahi-client/entrygroup.c
If the client calls EntryGroup::Commit update the local state immediately and
[catta] / avahi-client / entrygroup.c
index e43a44fb8ae42b61db5785ce7f084d0141187d58..ea9b6767cf531d95630bf4f80db999d898054219 100644 (file)
@@ -249,21 +249,31 @@ int avahi_entry_group_free(AvahiEntryGroup *group) {
 }
 
 int avahi_entry_group_commit(AvahiEntryGroup *group) {
+    int ret;
     assert(group);
     
     if (!group->path || !avahi_client_is_connected(group->client))
         return avahi_client_set_errno(group->client, AVAHI_ERR_BAD_STATE);
 
-    return entry_group_simple_method_call(group, "Commit");
+    if ((ret = entry_group_simple_method_call(group, "Commit")) < 0)
+        return ret;
+
+    avahi_entry_group_set_state(group, AVAHI_ENTRY_GROUP_REGISTERING);
+    return 0;
 }
 
 int avahi_entry_group_reset(AvahiEntryGroup *group) {
+    int ret;
     assert(group);
     
     if (!group->path || !avahi_client_is_connected(group->client))
         return avahi_client_set_errno(group->client, AVAHI_ERR_BAD_STATE);
 
-    return entry_group_simple_method_call(group, "Reset");
+    if ((ret = entry_group_simple_method_call(group, "Reset")) < 0)
+        return ret;
+
+    avahi_entry_group_set_state(group, AVAHI_ENTRY_GROUP_UNCOMMITED);
+    return 0;
 }
 
 int avahi_entry_group_get_state (AvahiEntryGroup *group) {