From febe78d06249cd4d36a86e97610dd45ab518a757 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sat, 31 May 2008 12:18:29 +0000 Subject: * Implements UserServer logoff in a few situations * User tries to log-in but is already logged in. Userserver will send message to simulator user was in to log the user out there. * From the UserServer, admin types 'logoff-user firstname lastname message'. * Some regions may not get the message because they're not updated yet. --- .../Region/Communications/OGS1/OGS1GridServices.cs | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'OpenSim/Region/Communications/OGS1/OGS1GridServices.cs') diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index 309a795..2e892c2 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs @@ -86,6 +86,7 @@ namespace OpenSim.Region.Communications.OGS1 httpServer = httpServe; //Respond to Grid Services requests httpServer.AddXmlRPCHandler("expect_user", ExpectUser); + httpServer.AddXmlRPCHandler("logoff_user", LogOffUser); httpServer.AddXmlRPCHandler("check", PingCheckReply); StartRemoting(); @@ -603,6 +604,31 @@ namespace OpenSim.Region.Communications.OGS1 return new XmlRpcResponse(); } + // Grid Request Processing + /// + /// Ooops, our Agent must be dead if we're getting this request! + /// + /// + /// + public XmlRpcResponse LogOffUser(XmlRpcRequest request) + { + m_log.Debug("[CONNECTION DEBUGGING]: LogOff User Called "); + Hashtable requestData = (Hashtable)request.Params[0]; + string message = (string)requestData["message"]; + LLUUID agentID = LLUUID.Zero; + LLUUID RegionSecret = LLUUID.Zero; + Helpers.TryParse((string)requestData["agent_id"], out agentID); + Helpers.TryParse((string)requestData["region_secret"], out RegionSecret); + + ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]); + + + m_localBackend.TriggerLogOffUser(regionHandle, agentID, RegionSecret,message); + + + + return new XmlRpcResponse(); + } #region m_interRegion Comms -- cgit v1.1