* Enables logins to regions on a grid once they have finished starting up (this does not include script startup).
parent
858d8416b4
commit
e518fe5d34
|
@ -425,7 +425,7 @@ namespace OpenSim
|
|||
|
||||
LoadPlugins();
|
||||
|
||||
// Only enable logins to the regions once we have completely finished starting up
|
||||
// Only enable logins to the regions once we have completely finished starting up (apart from scripts)
|
||||
m_commsManager.GridService.RegionLoginsEnabled = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -613,7 +613,7 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
/// <param name="request"></param>
|
||||
/// <returns></returns>
|
||||
public XmlRpcResponse ExpectUser(XmlRpcRequest request)
|
||||
{
|
||||
{
|
||||
Hashtable requestData = (Hashtable) request.Params[0];
|
||||
AgentCircuitData agentData = new AgentCircuitData();
|
||||
agentData.SessionID = new UUID((string) requestData["session_id"]);
|
||||
|
@ -627,7 +627,7 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
|
||||
m_log.DebugFormat(
|
||||
"[CLIENT]: Told by user service to prepare for a connection from {0} {1} {2}, circuit {3}",
|
||||
agentData.firstname, agentData.lastname, agentData.AgentID, agentData.circuitcode);
|
||||
agentData.firstname, agentData.lastname, agentData.AgentID, agentData.circuitcode);
|
||||
|
||||
if (requestData.ContainsKey("child_agent") && requestData["child_agent"].Equals("1"))
|
||||
{
|
||||
|
@ -644,45 +644,62 @@ namespace OpenSim.Region.Communications.OGS1
|
|||
agentData.child = false;
|
||||
}
|
||||
|
||||
RegionInfo[] regions = m_regionsOnInstance.ToArray();
|
||||
bool banned = false;
|
||||
|
||||
for (int i = 0; i < regions.Length; i++)
|
||||
{
|
||||
if (regions[i] != null)
|
||||
{
|
||||
if (regions[i].RegionHandle == regionHandle)
|
||||
{
|
||||
if (regions[i].EstateSettings.IsBanned(agentData.AgentID))
|
||||
{
|
||||
banned = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
XmlRpcResponse resp = new XmlRpcResponse();
|
||||
|
||||
if (banned)
|
||||
|
||||
if (!m_regionLoginsEnabled)
|
||||
{
|
||||
m_log.InfoFormat("[CLIENT]: Denying access for user {0} {1} because user is banned",agentData.firstname,agentData.lastname);
|
||||
m_log.InfoFormat(
|
||||
"[CLIENT]: Denying access for user {0} {1} because region login is currently disabled",
|
||||
agentData.firstname, agentData.lastname);
|
||||
|
||||
Hashtable respdata = new Hashtable();
|
||||
respdata["success"] = "FALSE";
|
||||
respdata["reason"] = "banned";
|
||||
resp.Value = respdata;
|
||||
respdata["reason"] = "region login currently disabled";
|
||||
resp.Value = respdata;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_localBackend.TriggerExpectUser(regionHandle, agentData);
|
||||
Hashtable respdata = new Hashtable();
|
||||
respdata["success"] = "TRUE";
|
||||
resp.Value = respdata;
|
||||
RegionInfo[] regions = m_regionsOnInstance.ToArray();
|
||||
bool banned = false;
|
||||
|
||||
for (int i = 0; i < regions.Length; i++)
|
||||
{
|
||||
if (regions[i] != null)
|
||||
{
|
||||
if (regions[i].RegionHandle == regionHandle)
|
||||
{
|
||||
if (regions[i].EstateSettings.IsBanned(agentData.AgentID))
|
||||
{
|
||||
banned = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (banned)
|
||||
{
|
||||
m_log.InfoFormat(
|
||||
"[CLIENT]: Denying access for user {0} {1} because user is banned",
|
||||
agentData.firstname, agentData.lastname);
|
||||
|
||||
Hashtable respdata = new Hashtable();
|
||||
respdata["success"] = "FALSE";
|
||||
respdata["reason"] = "banned";
|
||||
resp.Value = respdata;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_localBackend.TriggerExpectUser(regionHandle, agentData);
|
||||
Hashtable respdata = new Hashtable();
|
||||
respdata["success"] = "TRUE";
|
||||
resp.Value = respdata;
|
||||
}
|
||||
}
|
||||
|
||||
return resp;
|
||||
}
|
||||
|
||||
// Grid Request Processing
|
||||
/// <summary>
|
||||
/// Ooops, our Agent must be dead if we're getting this request!
|
||||
|
|
Loading…
Reference in New Issue