aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2011-11-14 15:24:02 +0000
committerJustin Clark-Casey (justincc)2011-11-14 15:24:02 +0000
commit49ec85ae154a8062e6fcf8bad95ecc3b611e7812 (patch)
tree837fef3c9287b9875edb4afcda99abfa580dc05c
parentdoh - correct build break (diff)
downloadopensim-SC_OLD-49ec85ae154a8062e6fcf8bad95ecc3b611e7812.zip
opensim-SC_OLD-49ec85ae154a8062e6fcf8bad95ecc3b611e7812.tar.gz
opensim-SC_OLD-49ec85ae154a8062e6fcf8bad95ecc3b611e7812.tar.bz2
opensim-SC_OLD-49ec85ae154a8062e6fcf8bad95ecc3b611e7812.tar.xz
Do a ScenePresence null check in HGMessageTransferModule.SendIMToScene() to stop a NullReferenceException being thrown if an HG IM is sent to a simulator running multiple regions
This is an attempt to address http://opensimulator.org/mantis/view.php?id=5791
-rw-r--r--OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs3
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs2
2 files changed, 4 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
index 321a705..560d913 100644
--- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs
@@ -225,12 +225,13 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage
225 foreach (Scene scene in m_Scenes) 225 foreach (Scene scene in m_Scenes)
226 { 226 {
227 ScenePresence sp = scene.GetScenePresence(toAgentID); 227 ScenePresence sp = scene.GetScenePresence(toAgentID);
228 if(!sp.IsChildAgent) 228 if(sp != null && !sp.IsChildAgent)
229 { 229 {
230 scene.EventManager.TriggerIncomingInstantMessage(gim); 230 scene.EventManager.TriggerIncomingInstantMessage(gim);
231 successful = true; 231 successful = true;
232 } 232 }
233 } 233 }
234
234 if (!successful) 235 if (!successful)
235 { 236 {
236 // If the message can't be delivered to an agent, it 237 // If the message can't be delivered to an agent, it
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 3fee642..9ebb6dd 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2854,6 +2854,8 @@ namespace OpenSim.Region.Framework.Scenes
2854 Velocity = Vector3.Zero; 2854 Velocity = Vector3.Zero;
2855 AbsolutePosition = pos; 2855 AbsolutePosition = pos;
2856 2856
2857// m_log.DebugFormat("[SCENE PRESENCE]: Prevented flyoff for {0} at {1}", Name, AbsolutePosition);
2858
2857 AddToPhysicalScene(isFlying); 2859 AddToPhysicalScene(isFlying);
2858 } 2860 }
2859 } 2861 }