Group chat: prevent a situation where dupe IMs could occur.
parent
1d4bf06fe7
commit
1b94de8e58
|
@ -405,7 +405,6 @@ namespace OpenSim.Groups
|
||||||
GridRegion regionOfOrigin = aScene.GridService.GetRegionByUUID(aScene.RegionInfo.ScopeID, regionID);
|
GridRegion regionOfOrigin = aScene.GridService.GetRegionByUUID(aScene.RegionInfo.ScopeID, regionID);
|
||||||
|
|
||||||
List<GroupMembersData> groupMembers = m_groupData.GetGroupMembers(UUID.Zero.ToString(), GroupID);
|
List<GroupMembersData> groupMembers = m_groupData.GetGroupMembers(UUID.Zero.ToString(), GroupID);
|
||||||
List<UUID> alreadySeen = new List<UUID>();
|
|
||||||
|
|
||||||
//if (m_debugEnabled)
|
//if (m_debugEnabled)
|
||||||
// foreach (GroupMembersData m in groupMembers)
|
// foreach (GroupMembersData m in groupMembers)
|
||||||
|
@ -415,15 +414,10 @@ namespace OpenSim.Groups
|
||||||
{
|
{
|
||||||
s.ForEachScenePresence(sp =>
|
s.ForEachScenePresence(sp =>
|
||||||
{
|
{
|
||||||
// We need this, because we are searching through all
|
// If we got this via grid messaging, it's because the caller thinks
|
||||||
// SPs, both root and children
|
// that the root agent is here. We should only send the IM to root agents.
|
||||||
if (alreadySeen.Contains(sp.UUID))
|
if (sp.IsChildAgent)
|
||||||
{
|
|
||||||
if (m_debugEnabled)
|
|
||||||
m_log.DebugFormat("[Groups.Messaging]: skipping agent {0} because we've already seen it", sp.UUID);
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
alreadySeen.Add(sp.UUID);
|
|
||||||
|
|
||||||
GroupMembersData m = groupMembers.Find(gmd =>
|
GroupMembersData m = groupMembers.Find(gmd =>
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue