From 443c66b43239038d50bf89e2233fdba778c250f7 Mon Sep 17 00:00:00 2001 From: Teravus Ovares Date: Tue, 18 Mar 2008 06:03:50 +0000 Subject: [PATCH] Since we don't yet have a reliable way to release the lock that prevents a user from logging in a second time if they're already registered as logged in; * If a user logs in and they are noted as agentOnline. Set agentOnline = false and send a 'you're already logged in' message to the user asking them to wait 5 minutes. These 5 minutes are not enforced (because there's no foolproof interlock release yet without the grid operator getting a support call for every little sim crash). When the user gets the message, they can log-in immediately after it, but the user can expect weird results if they don't wait 5 minutes and log-in to the region they were in previously. --- OpenSim/Framework/Communications/LoginResponse.cs | 2 +- OpenSim/Framework/Communications/LoginService.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenSim/Framework/Communications/LoginResponse.cs b/OpenSim/Framework/Communications/LoginResponse.cs index a093c9d7d9..a815662f26 100644 --- a/OpenSim/Framework/Communications/LoginResponse.cs +++ b/OpenSim/Framework/Communications/LoginResponse.cs @@ -244,7 +244,7 @@ namespace OpenSim.Framework.UserManagement { return (GenerateFailureResponse("presence", - "You appear to be already logged in, if this is not the case please wait for your session to timeout, if this takes longer than a few minutes please contact the grid owner", + "You appear to be already logged in, if this is not the case please wait for your session to timeout, if this takes longer than a few minutes please contact the grid owner. Please wait 5 minutes if you are going to connect to a region nearby to the region you were at previously.", "false")); } diff --git a/OpenSim/Framework/Communications/LoginService.cs b/OpenSim/Framework/Communications/LoginService.cs index dede60787a..72b408b056 100644 --- a/OpenSim/Framework/Communications/LoginService.cs +++ b/OpenSim/Framework/Communications/LoginService.cs @@ -164,7 +164,7 @@ namespace OpenSim.Framework.UserManagement // If agentOnline could not turn from true back to false normally // because of some problem, for instance, the crashment of server or client, // the user cannot log in any longer. - userProfile.currentAgent = null; + userProfile.currentAgent.agentOnline = false; m_userManager.CommitAgent(ref userProfile); // Reject the login