diff options
author | Sjoerd Simons <sjoerd@luon.net> | 2007-11-27 22:02:10 +0000 |
---|---|---|
committer | Sjoerd Simons <sjoerd@luon.net> | 2007-11-27 22:02:10 +0000 |
commit | eab57f7c8edcaaa17eab4574f0f25f3f5152c66a (patch) | |
tree | b2be77eb75fa954bf90d382059caa4c8747c5d59 | |
parent | 49117575d2eddab96143401cebe7301b6d074625 (diff) | |
download | telepathy-salut-eab57f7c8edcaaa17eab4574f0f25f3f5152c66a.tar.gz |
GibberRMulticastTransport: When tagging a failure as INSTANT_FAILURE, remove the failed timer. Also don't recheck INSTANT_FAILURE members
20071127220210-93b9a-129889dcb3e5ec30bfdf8bd7913422a73ff87b99.gz
-rw-r--r-- | lib/gibber/gibber-r-multicast-transport.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/gibber/gibber-r-multicast-transport.c b/lib/gibber/gibber-r-multicast-transport.c index 9cbdbe84..2ffcabad 100644 --- a/lib/gibber/gibber-r-multicast-transport.c +++ b/lib/gibber/gibber-r-multicast-transport.c @@ -1120,7 +1120,8 @@ collect_failed_members (gpointer key, gpointer value, gpointer user_data) MemberInfo *info = (MemberInfo *)value; GArray *array = (GArray *)user_data; - if (info->state >= MEMBER_STATE_FAILING) + if (info->state >= MEMBER_STATE_FAILING && + info->state < MEMBER_STATE_INSTANT_FAILURE) g_array_append_val (array, info->id); } @@ -1183,6 +1184,11 @@ check_failure_completion (GibberRMulticastTransport *self, guint32 id) { /* Make it an instant failure as we already cleaned up this node */ info->state = MEMBER_STATE_INSTANT_FAILURE; + if (info->fail_timeout != 0) + { + g_source_remove (info->fail_timeout); + info->fail_timeout = 0; + } check_join_agreement (self); } else |