From 443c66b43239038d50bf89e2233fdba778c250f7 Mon Sep 17 00:00:00 2001
From: Teravus Ovares
Date: Tue, 18 Mar 2008 06:03:50 +0000
Subject: 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(-)

(limited to 'OpenSim')

diff --git a/OpenSim/Framework/Communications/LoginResponse.cs b/OpenSim/Framework/Communications/LoginResponse.cs
index a093c9d..a815662 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 dede607..72b408b 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
-- 
cgit v1.1