From eb330f71be3fd1dd6f3c82fb3ad60bfd8be7e894 Mon Sep 17 00:00:00 2001 From: Arthur Valadares Date: Mon, 1 Jun 2009 18:34:40 +0000 Subject: * Making silent logoff of old hung sessions for new connections default for StandAlone users. Not touching grid. --- OpenSim/Client/Linden/LLStandaloneLoginModule.cs | 4 ---- OpenSim/Client/Linden/LLStandaloneLoginService.cs | 10 ++-------- OpenSim/Framework/Communications/Services/LoginService.cs | 4 ++-- OpenSim/Framework/Communications/Tests/LoginServiceTests.cs | 4 +++- bin/OpenSim.ini.example | 4 ---- 5 files changed, 7 insertions(+), 19 deletions(-) diff --git a/OpenSim/Client/Linden/LLStandaloneLoginModule.cs b/OpenSim/Client/Linden/LLStandaloneLoginModule.cs index 9cfa3c1..6474feb 100644 --- a/OpenSim/Client/Linden/LLStandaloneLoginModule.cs +++ b/OpenSim/Client/Linden/LLStandaloneLoginModule.cs @@ -54,7 +54,6 @@ namespace OpenSim.Client.Linden protected bool m_enabled = false; // Module is only enabled if running in standalone mode protected bool authenticate; - protected bool m_warn_already_logged; protected string welcomeMessage; public bool RegionLoginsEnabled @@ -79,11 +78,9 @@ namespace OpenSim.Client.Linden public void Initialise(IConfigSource source) { IConfig startupConfig = source.Configs["Startup"]; - IConfig stdaloneConfig = source.Configs["StandAlone"]; if (startupConfig != null) { m_enabled = !startupConfig.GetBoolean("gridmode", false); - m_warn_already_logged = stdaloneConfig.GetBoolean("warn_user_already_logged_in", true); } if (m_enabled) @@ -115,7 +112,6 @@ namespace OpenSim.Client.Linden //TODO: fix the casting of the user service, maybe by registering the userManagerBase with scenes, or refactoring so we just need a IUserService reference m_loginService = new LLStandaloneLoginService((UserManagerBase)m_firstScene.CommsManager.UserAdminService, welcomeMessage, m_firstScene.CommsManager.InterServiceInventoryService, m_firstScene.CommsManager.NetworkServersInfo, authenticate, rootFolder, this); - m_loginService.WarnAlreadyLogged = m_warn_already_logged; httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod); diff --git a/OpenSim/Client/Linden/LLStandaloneLoginService.cs b/OpenSim/Client/Linden/LLStandaloneLoginService.cs index d9af24d..6b217e6 100644 --- a/OpenSim/Client/Linden/LLStandaloneLoginService.cs +++ b/OpenSim/Client/Linden/LLStandaloneLoginService.cs @@ -52,14 +52,6 @@ namespace OpenSim.Client.Linden protected NetworkServersInfo m_serversInfo; protected bool m_authUsers = false; - // If true, warns the user that he is already logged, forcing another login. - // If false, skips message and logs in directly, kicking out current user. - public bool WarnAlreadyLogged - { - get { return m_warn_already_logged; } - set { m_warn_already_logged = value; } - } - /// /// Used to make requests to the local regions. /// @@ -79,6 +71,8 @@ namespace OpenSim.Client.Linden m_inventoryService = interServiceInventoryService; m_regionsConnector = regionsConnector; + // Standard behavior: In StandAlone, silent logout of last hung session + m_warn_already_logged = false; } public override UserProfileData GetTheUser(string firstname, string lastname) diff --git a/OpenSim/Framework/Communications/Services/LoginService.cs b/OpenSim/Framework/Communications/Services/LoginService.cs index 36ec26e..900a3d9 100644 --- a/OpenSim/Framework/Communications/Services/LoginService.cs +++ b/OpenSim/Framework/Communications/Services/LoginService.cs @@ -181,10 +181,9 @@ namespace OpenSim.Framework.Communications.Services // try to tell the region that their user is dead. LogOffUser(userProfile, " XMLRPC You were logged off because you logged in from another location"); - // Reject the login - if (m_warn_already_logged) { + // This is behavior for for grid, reject login m_log.InfoFormat( "[LOGIN END]: XMLRPC Notifying user {0} {1} that they are already logged in", firstname, lastname); @@ -193,6 +192,7 @@ namespace OpenSim.Framework.Communications.Services } else { + // This is behavior for standalone (silent logout of last hung session) m_log.InfoFormat( "[LOGIN]: User {0} {1} is already logged in, not notifying user, kicking old presence and starting new login.", firstname, lastname); diff --git a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs index 0cce2f0..7a622ad 100644 --- a/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs +++ b/OpenSim/Framework/Communications/Tests/LoginServiceTests.cs @@ -304,7 +304,9 @@ namespace OpenSim.Framework.Communications.Tests } - [Test] + // [Test] + // Commenting out test now that LLStandAloneLoginService no longer replies with message in this case. + // Kept the code for future test with grid mode, which will keep this behavior. public void T023_TestAuthenticatedLoginAlreadyLoggedIn() { TestHelper.InMethod(); diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index b47d207..cae87ee 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example @@ -256,10 +256,6 @@ accounts_authenticate = true welcome_message = "Welcome to OpenSimulator" - ; Shows or skips the "please wait 5 minutes" message when you crash or are already logged in. - ; If false, it will silently kick the user from the scene and login. - warn_user_already_logged_in = true - ; Inventory database provider inventory_plugin = "OpenSim.Data.SQLite.dll" ; inventory_plugin = "OpenSim.Data.MySQL.dll" -- cgit v1.1