aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorTeravus Ovares2009-01-06 00:57:33 +0000
committerTeravus Ovares2009-01-06 00:57:33 +0000
commit4f0bbf5d6111e273d5d1841f96695c34d4c432da (patch)
treebadccf8ae34bb844b8983ef64aee0b408deac07b
parent* Added a way for the sim stats reporter to say to the scene that the stats a... (diff)
downloadopensim-SC_OLD-4f0bbf5d6111e273d5d1841f96695c34d4c432da.zip
opensim-SC_OLD-4f0bbf5d6111e273d5d1841f96695c34d4c432da.tar.gz
opensim-SC_OLD-4f0bbf5d6111e273d5d1841f96695c34d4c432da.tar.bz2
opensim-SC_OLD-4f0bbf5d6111e273d5d1841f96695c34d4c432da.tar.xz
* Kill an endless loop in the Instant Message delivery system
* Must compare user region with previous calling of the same method to determine if we should look the user up. * The first time, the previous region handle will be 0, so therefore it'll use the cached version. * The second time, previousRegionHandle will be what we looked up on the first round * The third time, it'll say.. we tried to deliver it once with or without lookup, we tried to deliver it a second time with lookup, and failed both times so end!
-rw-r--r--OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs8
1 files changed, 8 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs
index 838d42c..afd6a4c 100644
--- a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs
+++ b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/MessageTransferModule.cs
@@ -436,12 +436,20 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage
436 upd = new UserAgentData(); 436 upd = new UserAgentData();
437 upd.AgentOnline = true; 437 upd.AgentOnline = true;
438 upd.Handle = m_UserRegionMap[toAgentID]; 438 upd.Handle = m_UserRegionMap[toAgentID];
439
440 // We need to compare the current regionhandle with the previous region handle
441 // or the recursive loop will never end because it will never try to lookup the agent again
442 if (prevRegionHandle == upd.Handle)
443 {
444 lookupAgent = true;
445 }
439 } 446 }
440 else 447 else
441 { 448 {
442 lookupAgent = true; 449 lookupAgent = true;
443 } 450 }
444 } 451 }
452
445 453
446 // Are we needing to look-up an agent? 454 // Are we needing to look-up an agent?
447 if (lookupAgent) 455 if (lookupAgent)