diff options
author | Diva Canto | 2013-07-28 18:49:10 -0700 |
---|---|---|
committer | Diva Canto | 2013-07-28 18:49:10 -0700 |
commit | 1d4bf06fe7731f4ca3d8f27a38d64f67d222c6af (patch) | |
tree | 555ffeea7e5a41e27306e09e08156888714210f6 /OpenSim/Addons/Groups | |
parent | Changing the visibility test in groups service to be UUID.Zero.ToString() ins... (diff) | |
download | opensim-SC-1d4bf06fe7731f4ca3d8f27a38d64f67d222c6af.zip opensim-SC-1d4bf06fe7731f4ca3d8f27a38d64f67d222c6af.tar.gz opensim-SC-1d4bf06fe7731f4ca3d8f27a38d64f67d222c6af.tar.bz2 opensim-SC-1d4bf06fe7731f4ca3d8f27a38d64f67d222c6af.tar.xz |
Group chat: guard against duplicate sends
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Addons/Groups/GroupsMessagingModule.cs | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/OpenSim/Addons/Groups/GroupsMessagingModule.cs b/OpenSim/Addons/Groups/GroupsMessagingModule.cs index cd45432..83d296e 100644 --- a/OpenSim/Addons/Groups/GroupsMessagingModule.cs +++ b/OpenSim/Addons/Groups/GroupsMessagingModule.cs | |||
@@ -297,6 +297,10 @@ namespace OpenSim.Groups | |||
297 | if (member.AgentID.Guid == im.fromAgentID) | 297 | if (member.AgentID.Guid == im.fromAgentID) |
298 | continue; | 298 | continue; |
299 | 299 | ||
300 | if (clientsAlreadySent.Contains(member.AgentID)) | ||
301 | continue; | ||
302 | clientsAlreadySent.Add(member.AgentID); | ||
303 | |||
300 | if (hasAgentDroppedGroupChatSession(member.AgentID.ToString(), groupID)) | 304 | if (hasAgentDroppedGroupChatSession(member.AgentID.ToString(), groupID)) |
301 | { | 305 | { |
302 | // Don't deliver messages to people who have dropped this session | 306 | // Don't deliver messages to people who have dropped this session |
@@ -336,12 +340,9 @@ namespace OpenSim.Groups | |||
336 | // Deliver locally, directly | 340 | // Deliver locally, directly |
337 | if (m_debugEnabled) m_log.DebugFormat("[Groups.Messaging]: Passing to ProcessMessageFromGroupSession to deliver to {0} locally", client.Name); | 341 | if (m_debugEnabled) m_log.DebugFormat("[Groups.Messaging]: Passing to ProcessMessageFromGroupSession to deliver to {0} locally", client.Name); |
338 | 342 | ||
339 | if (clientsAlreadySent.Contains(member.AgentID)) | ||
340 | continue; | ||
341 | clientsAlreadySent.Add(member.AgentID); | ||
342 | |||
343 | ProcessMessageFromGroupSession(im); | 343 | ProcessMessageFromGroupSession(im); |
344 | } | 344 | } |
345 | |||
345 | } | 346 | } |
346 | 347 | ||
347 | if (m_debugEnabled) | 348 | if (m_debugEnabled) |