mirror of
https://github.com/opensim/opensim.git
synced 2026-08-06 17:32:42 +08:00
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.
This commit is contained in:
@@ -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"));
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user