Group chat: guard against duplicate sends

TeleportWork
Diva Canto 2013-07-28 18:49:10 -07:00
parent 33b54807a1
commit 1d4bf06fe7
1 changed files with 5 additions and 4 deletions

View File

@ -297,6 +297,10 @@ namespace OpenSim.Groups
if (member.AgentID.Guid == im.fromAgentID) if (member.AgentID.Guid == im.fromAgentID)
continue; continue;
if (clientsAlreadySent.Contains(member.AgentID))
continue;
clientsAlreadySent.Add(member.AgentID);
if (hasAgentDroppedGroupChatSession(member.AgentID.ToString(), groupID)) if (hasAgentDroppedGroupChatSession(member.AgentID.ToString(), groupID))
{ {
// Don't deliver messages to people who have dropped this session // Don't deliver messages to people who have dropped this session
@ -336,12 +340,9 @@ namespace OpenSim.Groups
// Deliver locally, directly // Deliver locally, directly
if (m_debugEnabled) m_log.DebugFormat("[Groups.Messaging]: Passing to ProcessMessageFromGroupSession to deliver to {0} locally", client.Name); if (m_debugEnabled) m_log.DebugFormat("[Groups.Messaging]: Passing to ProcessMessageFromGroupSession to deliver to {0} locally", client.Name);
if (clientsAlreadySent.Contains(member.AgentID))
continue;
clientsAlreadySent.Add(member.AgentID);
ProcessMessageFromGroupSession(im); ProcessMessageFromGroupSession(im);
} }
} }
if (m_debugEnabled) if (m_debugEnabled)