summaryrefslogtreecommitdiffstats
path: root/avahi-core/server.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-09-29 16:25:44 +0000
committerLennart Poettering <lennart@poettering.net>2005-09-29 16:25:44 +0000
commit8e133abe5892f1fd6414b33e2fafc20734a3b5f4 (patch)
tree52cf91cb8afefdb5bb5c3cbfdfdaf671340a5055 /avahi-core/server.c
parentd72e98d4d3a27488e0b7b694e45a9b3d426e68da (diff)
reset the the commit throttling counter for entry groups 5s afer they have been established successfully
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@651 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core/server.c')
-rw-r--r--avahi-core/server.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/avahi-core/server.c b/avahi-core/server.c
index 49821d8..cdf31e8 100644
--- a/avahi-core/server.c
+++ b/avahi-core/server.c
@@ -2274,6 +2274,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)