From fc35b45e2176ee2dc8bf5627e84e463a2e9d3a52 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 13 Feb 2014 23:55:38 +0000 Subject: If calls to UserAgentServiceConnector fail then throw an exception. This lets the caller decide whether to discard the error or not. This is Oren Hurvitz's 0001 patch from http://opensimulator.org/mantis/view.php?id=6956 but I ended up doing some tweaking to resolve patch application issues. --- .../Avatar/InstantMessage/HGMessageTransferModule.cs | 12 +++++++++++- .../CoreModules/Avatar/UserProfiles/UserProfileModule.cs | 11 ++++++++++- .../Framework/EntityTransfer/HGEntityTransferModule.cs | 14 ++++++++++++-- .../Framework/UserManagement/HGUserManagementModule.cs | 12 +++++++++++- .../Framework/UserManagement/UserManagementModule.cs | 11 ++++++++++- 5 files changed, 54 insertions(+), 6 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs index 7bf19c2..d46cb55 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/HGMessageTransferModule.cs @@ -282,7 +282,17 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage string uasURL = circuit.ServiceURLs["HomeURI"].ToString(); m_log.DebugFormat("[HG MESSAGE TRANSFER]: getting UUI of user {0} from {1}", toAgent, uasURL); UserAgentServiceConnector uasConn = new UserAgentServiceConnector(uasURL); - return uasConn.GetUUI(fromAgent, toAgent); + + string agentUUI = string.Empty; + try + { + agentUUI = uasConn.GetUUI(fromAgent, toAgent); + } + catch (Exception e) { + m_log.Warn("[HG MESSAGE TRANSFER]: GetUUI call failed ", e); + } + + return agentUUI; } } } diff --git a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs index 9ae7452..ed8864d 100644 --- a/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/UserProfiles/UserProfileModule.cs @@ -1164,7 +1164,16 @@ namespace OpenSim.Region.OptionalModules.Avatar.UserProfiles UserAgentServiceConnector uConn = new UserAgentServiceConnector(home_url); - Dictionary account = uConn.GetUserInfo(userID); + Dictionary account; + try + { + account = uConn.GetUserInfo(userID); + } + catch (Exception e) + { + m_log.Warn("[PROFILES]: GetUserInfo call failed ", e); + account = new Dictionary(); + } if (account.Count > 0) { diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index 04a0db6..b752639 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs @@ -1,4 +1,4 @@ -/* +/* * Copyright (c) Contributors, http://opensimulator.org/ * See CONTRIBUTORS.TXT for a full list of copyright holders. * @@ -462,7 +462,17 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer IUserAgentService userAgentService = new UserAgentServiceConnector(aCircuit.ServiceURLs["HomeURI"].ToString()); Vector3 position = Vector3.UnitY, lookAt = Vector3.UnitY; - GridRegion finalDestination = userAgentService.GetHomeRegion(aCircuit.AgentID, out position, out lookAt); + + GridRegion finalDestination = null; + try + { + finalDestination = userAgentService.GetHomeRegion(aCircuit.AgentID, out position, out lookAt); + } + catch (Exception e) + { + m_log.Warn("[HG ENTITY TRANSFER MODULE]: GetHomeRegion call failed ", e); + } + if (finalDestination == null) { client.SendTeleportFailed("Your home region could not be found"); diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/HGUserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/HGUserManagementModule.cs index 245c808..b568857 100644 --- a/OpenSim/Region/CoreModules/Framework/UserManagement/HGUserManagementModule.cs +++ b/OpenSim/Region/CoreModules/Framework/UserManagement/HGUserManagementModule.cs @@ -130,7 +130,17 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement } UserAgentServiceConnector uasConn = new UserAgentServiceConnector(uriStr); - UUID userID = uasConn.GetUUID(names[0], names[1]); + + UUID userID = UUID.Zero; + try + { + userID = uasConn.GetUUID(names[0], names[1]); + } + catch (Exception e) + { + m_log.Warn("[USER MANAGEMENT MODULE]: GetUUID call failed ", e); + } + if (!userID.Equals(UUID.Zero)) { UserData ud = new UserData(); diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs index 3fb5195..d8b415e 100644 --- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs +++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs @@ -473,7 +473,16 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement // serverType, userdata.HomeURL, userID); UserAgentServiceConnector uConn = new UserAgentServiceConnector(userdata.HomeURL); - userdata.ServerURLs = uConn.GetServerURLs(userID); + try + { + userdata.ServerURLs = uConn.GetServerURLs(userID); + } + catch (Exception e) + { + m_log.Warn("[USER MANAGEMENT MODULE]: GetServerURLs call failed ", e); + userdata.ServerURLs = new Dictionary(); + } + if (userdata.ServerURLs != null && userdata.ServerURLs.ContainsKey(serverType) && userdata.ServerURLs[serverType] != null) return userdata.ServerURLs[serverType].ToString(); } -- cgit v1.1