From 610313ea6499f252e488f46d39f781b6e853dab7 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Fri, 19 Sep 2008 01:11:40 +0000 Subject: [PATCH] * Added null exception handler where we couldn't locate a user data record in the cache for the user * More OGP tweaks to make it play nice in an error condition. * Still Experimental. --- .../Modules/InterGrid/OpenGridProtocolModule.cs | 11 ++++++++++- OpenSim/Region/Environment/Scenes/Scene.cs | 9 ++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/Environment/Modules/InterGrid/OpenGridProtocolModule.cs b/OpenSim/Region/Environment/Modules/InterGrid/OpenGridProtocolModule.cs index 1fd559eef9..0462427600 100644 --- a/OpenSim/Region/Environment/Modules/InterGrid/OpenGridProtocolModule.cs +++ b/OpenSim/Region/Environment/Modules/InterGrid/OpenGridProtocolModule.cs @@ -312,7 +312,7 @@ namespace OpenSim.Region.Environment.Modules.InterGrid //int RegionPort = (int)reg.HttpPort; UUID RemoteAgentID = requestMap["agent_id"].AsUUID(); - + // will be used in the future. The client always connects with the aditi agentid currently UUID LocalAgentID = RemoteAgentID; @@ -342,6 +342,15 @@ namespace OpenSim.Region.Environment.Modules.InterGrid UpdateOGPState(LocalAgentID, userState); LLSDMap responseMap = new LLSDMap(); + + if (RemoteAgentID == UUID.Zero) + { + responseMap["connect"] = LLSD.FromBoolean(false); + responseMap["message"] = LLSD.FromString("No agent ID was specified in rez_avatar/request"); + m_log.Error("[OGP]: rez_avatar/request failed because no avatar UUID was provided in the request body"); + return responseMap; + } + responseMap["sim_host"] = LLSD.FromString(reg.ExternalHostName); // DEPRECIATED diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 88f2928b81..210b6c67a5 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -2620,7 +2620,14 @@ namespace OpenSim.Region.Environment.Scenes m_authenticateHandler.AddNewCircuit(agent.circuitcode, agent); // rewrite session_id CachedUserInfo userinfo = CommsManager.UserProfileCacheService.GetUserDetails(agent.AgentID); - userinfo.SessionID = agent.SessionID; + if (userinfo != null) + { + userinfo.SessionID = agent.SessionID; + } + else + { + m_log.WarnFormat("[USERINFO CACHE]: We couldn't find a User Info record for {0}. This is usually an indication that the UUID we're looking up is invalid", agent.AgentID); + } } else {