From 0d63b51f3750c8004417a069ea6b8590c72efc78 Mon Sep 17 00:00:00 2001 From: Sebastien Estienne Date: Thu, 29 Sep 2005 22:44:52 +0000 Subject: * merged the throttling fix from rev 651 git-svn-id: file:///home/lennart/svn/public/avahi/branches/working-0.5.x@659 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-core/server.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'avahi-core/server.c') diff --git a/avahi-core/server.c b/avahi-core/server.c index 59ab6c1..019a41a 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -2175,6 +2175,22 @@ void avahi_s_entry_group_change_state(AvahiSEntryGroup *g, AvahiEntryGroupState assert(state <= AVAHI_ENTRY_GROUP_COLLISION); + if (g->state == AVAHI_ENTRY_GROUP_ESTABLISHED) { + + /* If the entry group was established for a time longer then + * 5s, reset the establishment trial counter */ + + if (avahi_age(&g->established_at) > 5000000) + g->n_register_try = 0; + } + + if (state == AVAHI_ENTRY_GROUP_ESTABLISHED) + + /* If the entry group is now established, remember the time + * this happened */ + + gettimeofday(&g->established_at, NULL); + g->state = state; if (g->callback) -- cgit