char t[AVAHI_ADDRESS_STR_MAX];
avahi_address_snprint(t, sizeof(t), &a->address);
+ avahi_log_info("Withdrawing address record for %s on %s.", t, a->interface->hardware->name);
+
if (avahi_s_entry_group_get_state(a->entry_group) == AVAHI_ENTRY_GROUP_REGISTERING &&
m->server->state == AVAHI_SERVER_REGISTERING)
avahi_server_decrease_host_rr_pending(m->server);
- avahi_log_info("Withdrawing address record for %s on %s.", t, a->interface->hardware->name);
-
avahi_s_entry_group_reset(a->entry_group);
}
}
if (hw->entry_group && !avahi_s_entry_group_is_empty(hw->entry_group)) {
- if (avahi_s_entry_group_get_state(hw->entry_group) == AVAHI_ENTRY_GROUP_REGISTERING)
+ avahi_log_info("Withdrawing workstation service for %s.", hw->name);
+
+ if (avahi_s_entry_group_get_state(hw->entry_group) == AVAHI_ENTRY_GROUP_REGISTERING &&
+ m->server->state == AVAHI_SERVER_REGISTERING)
avahi_server_decrease_host_rr_pending(m->server);
avahi_s_entry_group_reset(hw->entry_group);
register_browse_domain(s);
avahi_interface_monitor_update_rrs(s->monitor, 0);
+ assert(s->n_host_rr_pending > 0);
s->n_host_rr_pending --;
if (s->n_host_rr_pending == 0)