From ae8d03ebdc45a9ea7f01c6b5674d4aae2c70c32c Mon Sep 17 00:00:00 2001 From: Hylke Bons Date: Wed, 8 Jun 2011 00:38:09 +0100 Subject: [PATCH] listener irc: Fix race condition joining channel when not connected --- SparkleLib/SparkleListenerIrc.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/SparkleLib/SparkleListenerIrc.cs b/SparkleLib/SparkleListenerIrc.cs index 73874c37..8ab5f5bb 100644 --- a/SparkleLib/SparkleListenerIrc.cs +++ b/SparkleLib/SparkleListenerIrc.cs @@ -56,10 +56,12 @@ namespace SparkleLib { }; this.client.OnDisconnected += delegate { + base.is_connecting = false; OnDisconnected (); }; this.client.OnError += delegate { + base.is_connecting = false; OnDisconnected (); }; @@ -118,9 +120,12 @@ namespace SparkleLib { { string channel = "#" + folder_identifier; if (!base.channels.Contains (channel)) { - SparkleHelpers.DebugInfo ("ListenerIrc", "Joining channel " + channel); base.channels.Add (channel); - this.client.RfcJoin (channel); + + if (IsConnected) { + SparkleHelpers.DebugInfo ("ListenerIrc", "Joining channel " + channel); + this.client.RfcJoin (channel); + } } }