X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-core%2Fentry.c;h=55c9ea29d99804c3cdd972d0a4ce2206b1095950;hb=acdec2c38860b6bc36328d20f5da6584787a368a;hp=9e9c0dd66393fa312ef02366b6b57de6a4473de7;hpb=f3a4c161a46ef2a88833f89d6ef27b86fe5d94b4;p=catta diff --git a/avahi-core/entry.c b/avahi-core/entry.c index 9e9c0dd..55c9ea2 100644 --- a/avahi-core/entry.c +++ b/avahi-core/entry.c @@ -161,6 +161,11 @@ static int check_record_conflict(AvahiServer *s, AvahiIfIndex interface, AvahiPr if ((flags & AVAHI_PUBLISH_ALLOW_MULTIPLE) && (e->flags & AVAHI_PUBLISH_ALLOW_MULTIPLE) ) continue; + if (avahi_record_equal_no_ttl(r, e->record)) { + /* The records are the same, not a conflict in any case */ + continue; + } + if ((interface <= 0 || e->interface <= 0 || e->interface == interface) && @@ -1014,6 +1019,11 @@ void avahi_s_entry_group_change_state(AvahiSEntryGroup *g, AvahiEntryGroupState if (avahi_age(&g->established_at) > 5000000) g->n_register_try = 0; + } else if (g->state == AVAHI_ENTRY_GROUP_REGISTERING) { + if (g->register_time_event) { + avahi_time_event_free(g->register_time_event); + g->register_time_event = NULL; + } } if (state == AVAHI_ENTRY_GROUP_ESTABLISHED) @@ -1153,15 +1163,8 @@ void avahi_s_entry_group_reset(AvahiSEntryGroup *g) { } g->server->need_entry_cleanup = 1; - if (g->register_time_event) { - avahi_time_event_free(g->register_time_event); - g->register_time_event = NULL; - } - g->n_probing = 0; - gettimeofday(&g->register_time, NULL); - avahi_s_entry_group_change_state(g, AVAHI_ENTRY_GROUP_UNCOMMITED); }