diff --git a/SparkleLib/SparkleListenerBase.cs b/SparkleLib/SparkleListenerBase.cs index e7ae5c4f..4914b69a 100755 --- a/SparkleLib/SparkleListenerBase.cs +++ b/SparkleLib/SparkleListenerBase.cs @@ -148,7 +148,7 @@ namespace SparkleLib { public bool HasQueueDownAnnouncement (string folder_identifier) { - foreach (SparkleAnnouncement announcement in this.queue_down) { + foreach (SparkleAnnouncement announcement in this.queue_down.GetRange(0, this.queue_down.Count)) { if (announcement.FolderIdentifier.Equals (folder_identifier)) { this.queue_down.Remove (announcement); return true; @@ -174,9 +174,9 @@ namespace SparkleLib { Connected (); if (this.queue_up.Count > 0) { - SparkleHelpers.DebugInfo ("Listener", "Delivering queued messages..."); + SparkleHelpers.DebugInfo ("Listener", "Delivering " + this.queue_up.Count + " queued messages..."); - foreach (SparkleAnnouncement announcement in this.queue_up) { + foreach (SparkleAnnouncement announcement in this.queue_up.GetRange(0, this.queue_up.Count)) { AnnounceBase (announcement); this.queue_up.Remove (announcement); } diff --git a/SparkleLib/SparkleListenerTcp.cs b/SparkleLib/SparkleListenerTcp.cs index 15274b9b..c844bf02 100755 --- a/SparkleLib/SparkleListenerTcp.cs +++ b/SparkleLib/SparkleListenerTcp.cs @@ -39,7 +39,6 @@ namespace SparkleLib { base (server, folder_identifier) { base.channels.Add (folder_identifier); - this.socket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); this.connected = false; } @@ -70,9 +69,11 @@ namespace SparkleLib { // Connect and subscribe to the channel int port = Server.Port; if (port < 0) port = 9999; - this.socket.Connect (Server.Host, port); lock (this.mutex) { + this.socket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + this.socket.Connect (Server.Host, port); + base.is_connecting = false; this.connected = true;