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.0.6.0-stable
parent
42857fe4e9
commit
443c66b432
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue