diff options
author | Diva Canto | 2013-07-09 14:12:52 -0700 |
---|---|---|
committer | Diva Canto | 2013-07-09 14:12:52 -0700 |
commit | 67e500383eb024fe4dd2681d0c5d902f289b65d8 (patch) | |
tree | f3523d8849fd573208869bf8e0aa8a77eb2c2077 /OpenSim/Region/CoreModules | |
parent | BaseHttpServer: if the handler sets the content length, don't override it. Th... (diff) | |
download | opensim-SC_OLD-67e500383eb024fe4dd2681d0c5d902f289b65d8.zip opensim-SC_OLD-67e500383eb024fe4dd2681d0c5d902f289b65d8.tar.gz opensim-SC_OLD-67e500383eb024fe4dd2681d0c5d902f289b65d8.tar.bz2 opensim-SC_OLD-67e500383eb024fe4dd2681d0c5d902f289b65d8.tar.xz |
Put guards on a bunch of exception-inducing code, as seen in logs from load test.
Diffstat (limited to 'OpenSim/Region/CoreModules')
3 files changed, 9 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index 630d1c3..759155a 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | |||
@@ -171,11 +171,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
171 | if (!so.IsAttachment) | 171 | if (!so.IsAttachment) |
172 | return; | 172 | return; |
173 | 173 | ||
174 | if (so.Scene.UserManagementModule.IsLocalGridUser(so.AttachedAvatar)) | 174 | if (so.AttachedAvatar == UUID.Zero || Scene.UserManagementModule.IsLocalGridUser(so.AttachedAvatar)) |
175 | return; | 175 | return; |
176 | 176 | ||
177 | // foreign user | 177 | // foreign user |
178 | AgentCircuitData aCircuit = so.Scene.AuthenticateHandler.GetAgentCircuitData(so.AttachedAvatar); | 178 | AgentCircuitData aCircuit = Scene.AuthenticateHandler.GetAgentCircuitData(so.AttachedAvatar); |
179 | if (aCircuit != null && (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0) | 179 | if (aCircuit != null && (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0) |
180 | { | 180 | { |
181 | if (aCircuit.ServiceURLs != null && aCircuit.ServiceURLs.ContainsKey("AssetServerURI")) | 181 | if (aCircuit.ServiceURLs != null && aCircuit.ServiceURLs.ContainsKey("AssetServerURI")) |
@@ -183,7 +183,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
183 | string url = aCircuit.ServiceURLs["AssetServerURI"].ToString(); | 183 | string url = aCircuit.ServiceURLs["AssetServerURI"].ToString(); |
184 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Incoming attachement {0} for HG user {1} with asset server {2}", so.Name, so.AttachedAvatar, url); | 184 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Incoming attachement {0} for HG user {1} with asset server {2}", so.Name, so.AttachedAvatar, url); |
185 | Dictionary<UUID, AssetType> ids = new Dictionary<UUID, AssetType>(); | 185 | Dictionary<UUID, AssetType> ids = new Dictionary<UUID, AssetType>(); |
186 | HGUuidGatherer uuidGatherer = new HGUuidGatherer(so.Scene.AssetService, url); | 186 | HGUuidGatherer uuidGatherer = new HGUuidGatherer(Scene.AssetService, url); |
187 | uuidGatherer.GatherAssetUuids(so, ids); | 187 | uuidGatherer.GatherAssetUuids(so, ids); |
188 | 188 | ||
189 | foreach (KeyValuePair<UUID, AssetType> kvp in ids) | 189 | foreach (KeyValuePair<UUID, AssetType> kvp in ids) |
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs index 1eae0ac..e0c8ea6 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/HGInventoryAccessModule.cs | |||
@@ -135,7 +135,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
135 | if (sp is ScenePresence) | 135 | if (sp is ScenePresence) |
136 | { | 136 | { |
137 | AgentCircuitData aCircuit = ((ScenePresence)sp).Scene.AuthenticateHandler.GetAgentCircuitData(client.AgentId); | 137 | AgentCircuitData aCircuit = ((ScenePresence)sp).Scene.AuthenticateHandler.GetAgentCircuitData(client.AgentId); |
138 | if ((aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0) | 138 | if (aCircuit != null && (aCircuit.teleportFlags & (uint)Constants.TeleportFlags.ViaHGLogin) != 0) |
139 | { | 139 | { |
140 | if (m_RestrictInventoryAccessAbroad) | 140 | if (m_RestrictInventoryAccessAbroad) |
141 | { | 141 | { |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs index 221f815..e05d186 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/GridUser/ActivityDetector.cs | |||
@@ -81,6 +81,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.GridUser | |||
81 | 81 | ||
82 | public void OnConnectionClose(IClientAPI client) | 82 | public void OnConnectionClose(IClientAPI client) |
83 | { | 83 | { |
84 | if (client == null) | ||
85 | return; | ||
86 | if (client.SceneAgent == null) | ||
87 | return; | ||
88 | |||
84 | if (client.SceneAgent.IsChildAgent) | 89 | if (client.SceneAgent.IsChildAgent) |
85 | return; | 90 | return; |
86 | 91 | ||