From a3851b3812aae6221714b1e61656d0853fce7124 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Sun, 20 Jan 2008 23:08:50 +0000 Subject: * Added hooks for logout to all IUserService and all that implement it. * Added a Logout message with a name on the console * Added a *fixme* message to figure out why the current agent session is null * After updating you may notice that there's a login and also a logout --- OpenSim/Grid/MessagingServer/MessageService.cs | 2 +- OpenSim/Grid/UserServer/Main.cs | 1 + OpenSim/Grid/UserServer/UserManager.cs | 37 ++++++++++++++++++++++++++ 3 files changed, 39 insertions(+), 1 deletion(-) (limited to 'OpenSim/Grid') diff --git a/OpenSim/Grid/MessagingServer/MessageService.cs b/OpenSim/Grid/MessagingServer/MessageService.cs index 01bd9af..056bfcb 100644 --- a/OpenSim/Grid/MessagingServer/MessageService.cs +++ b/OpenSim/Grid/MessagingServer/MessageService.cs @@ -388,7 +388,7 @@ namespace OpenSim.Grid.MessagingServer LLUUID AgentID = new LLUUID((string)requestData["agent_id"]); - ProcessLogOff(AgentID); + //ProcessLogOff(AgentID); return new XmlRpcResponse(); diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index 00a1641..a2881e6 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs @@ -115,6 +115,7 @@ namespace OpenSim.Grid.UserServer httpServer.AddXmlRPCHandler("remove_user_friend", m_userManager.XmlRpcResponseXmlRPCRemoveUserFriend); httpServer.AddXmlRPCHandler("update_user_friend_perms", m_userManager.XmlRpcResponseXmlRPCUpdateUserFriendPerms); httpServer.AddXmlRPCHandler("get_user_friend_list", m_userManager.XmlRpcResponseXmlRPCGetUserFriendList); + httpServer.AddXmlRPCHandler("logout_of_simulator", m_userManager.XmlRPCLogOffUserMethodUUID); // Message Server ---> User Server httpServer.AddXmlRPCHandler("register_messageserver", m_messagesService.XmlRPCRegisterMessageServer); diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index 03b1fbc..3f2aa5b 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs @@ -317,6 +317,43 @@ namespace OpenSim.Grid.UserServer return ProfileToXmlRPCResponse(userProfile); } + public XmlRpcResponse XmlRPCLogOffUserMethodUUID(XmlRpcRequest request) + { + XmlRpcResponse response = new XmlRpcResponse(); + Hashtable requestData = (Hashtable)request.Params[0]; + + + UserProfileData userProfile; + + if (requestData.Contains("avatar_uuid")) + { + try + { + LLUUID userUUID = new LLUUID((string)requestData["avatar_uuid"]); + LLUUID RegionID = new LLUUID((string)requestData["region_uuid"]); + ulong regionhandle = (ulong)Convert.ToInt64((string)requestData["region_handle"]); + float posx = (float)Convert.ToDecimal((string)requestData["region_pos_x"]); + float posy = (float)Convert.ToDecimal((string)requestData["region_pos_y"]); + float posz = (float)Convert.ToDecimal((string)requestData["region_pos_z"]); + + LogOffUser(userUUID, RegionID, regionhandle, posx, posy, posz); + } + catch (FormatException) + { + OpenSim.Framework.Console.MainLog.Instance.Warn("LOGOUT", "Error in Logout XMLRPC Params"); + return response; + } + + } + else + { + return CreateUnknownUserErrorResponse(); + } + + + return response; + } + #endregion public override UserProfileData SetupMasterUser(string firstName, string lastName) -- cgit v1.1