attempting to prevent the same announcement from being processed twice
This commit is contained in:
parent
439d26f803
commit
d0a4d126fc
|
@ -16,8 +16,10 @@
|
||||||
|
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
|
using System.Linq;
|
||||||
|
|
||||||
namespace SparkleLib {
|
namespace SparkleLib {
|
||||||
|
|
||||||
|
@ -112,6 +114,7 @@ namespace SparkleLib {
|
||||||
|
|
||||||
|
|
||||||
protected List<string> channels = new List<string> ();
|
protected List<string> channels = new List<string> ();
|
||||||
|
protected Hashtable last_announce = new Hashtable ();
|
||||||
protected List<SparkleAnnouncement> queue_up = new List<SparkleAnnouncement> ();
|
protected List<SparkleAnnouncement> queue_up = new List<SparkleAnnouncement> ();
|
||||||
protected List<SparkleAnnouncement> queue_down = new List<SparkleAnnouncement> ();
|
protected List<SparkleAnnouncement> queue_down = new List<SparkleAnnouncement> ();
|
||||||
protected bool is_connecting;
|
protected bool is_connecting;
|
||||||
|
@ -197,8 +200,21 @@ namespace SparkleLib {
|
||||||
|
|
||||||
public void OnAnnouncement (SparkleAnnouncement announcement)
|
public void OnAnnouncement (SparkleAnnouncement announcement)
|
||||||
{
|
{
|
||||||
SparkleHelpers.DebugInfo ("Listener", "Got message from " + announcement.FolderIdentifier + " on " + this.server);
|
SparkleHelpers.DebugInfo ("Listener", "Got message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server);
|
||||||
|
|
||||||
|
if (this.last_announce.ContainsKey (announcement.FolderIdentifier) ){
|
||||||
|
SparkleHelpers.DebugInfo ("Listener", "Received previous message from " + announcement.FolderIdentifier + " on " + this.server);
|
||||||
|
if (this.last_announce[announcement.FolderIdentifier].Equals(announcement.Message)) {
|
||||||
|
SparkleHelpers.DebugInfo ("Listener", "Ignoring already processed announcment " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SparkleHelpers.DebugInfo ("Listener", "Processing message " + announcement.Message + " from " + announcement.FolderIdentifier + " on " + this.server);
|
||||||
|
if (this.last_announce.ContainsKey (announcement.FolderIdentifier) )
|
||||||
|
this.last_announce.Remove (announcement.FolderIdentifier);
|
||||||
|
|
||||||
|
this.last_announce.Add (announcement.FolderIdentifier, announcement.Message);
|
||||||
this.queue_down.Add (announcement);
|
this.queue_down.Add (announcement);
|
||||||
|
|
||||||
if (Announcement != null)
|
if (Announcement != null)
|
||||||
|
|
Loading…
Reference in a new issue