Add AllowRegionRestartFromClient setting to [EstateManagement] section of OpenSim.ini.
Setting this to false will block all restart requests from the viewer even if they are otherwise legitimate. One use is to block region restarts if necessary whilst restart functionality remains buggy or triggers bugs in modules, though these should be fixed as soon as practicable. Default is true, as has been the case historically.0.7.3-extended
parent
a124984177
commit
d3776e8fba
|
@ -52,6 +52,11 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
|
|
||||||
protected EstateManagementCommands m_commands;
|
protected EstateManagementCommands m_commands;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// If false, region restart requests from the client are blocked even if they are otherwise legitimate.
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowRegionRestartFromClient { get; set; }
|
||||||
|
|
||||||
private EstateTerrainXferHandler TerrainUploader;
|
private EstateTerrainXferHandler TerrainUploader;
|
||||||
public TelehubManager m_Telehub;
|
public TelehubManager m_Telehub;
|
||||||
|
|
||||||
|
@ -59,6 +64,53 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
public event ChangeDelegate OnEstateInfoChange;
|
public event ChangeDelegate OnEstateInfoChange;
|
||||||
public event MessageDelegate OnEstateMessage;
|
public event MessageDelegate OnEstateMessage;
|
||||||
|
|
||||||
|
#region Region Module interface
|
||||||
|
|
||||||
|
public string Name { get { return "EstateManagementModule"; } }
|
||||||
|
|
||||||
|
public Type ReplaceableInterface { get { return null; } }
|
||||||
|
|
||||||
|
public void Initialise(IConfigSource source)
|
||||||
|
{
|
||||||
|
AllowRegionRestartFromClient = true;
|
||||||
|
|
||||||
|
IConfig config = source.Configs["EstateManagement"];
|
||||||
|
|
||||||
|
if (config != null)
|
||||||
|
AllowRegionRestartFromClient = config.GetBoolean("AllowRegionRestartFromClient", true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void AddRegion(Scene scene)
|
||||||
|
{
|
||||||
|
Scene = scene;
|
||||||
|
Scene.RegisterModuleInterface<IEstateModule>(this);
|
||||||
|
Scene.EventManager.OnNewClient += EventManager_OnNewClient;
|
||||||
|
Scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
|
||||||
|
|
||||||
|
m_Telehub = new TelehubManager(scene);
|
||||||
|
|
||||||
|
m_commands = new EstateManagementCommands(this);
|
||||||
|
m_commands.Initialise();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveRegion(Scene scene) {}
|
||||||
|
|
||||||
|
public void RegionLoaded(Scene scene)
|
||||||
|
{
|
||||||
|
// Sets up the sun module based no the saved Estate and Region Settings
|
||||||
|
// DO NOT REMOVE or the sun will stop working
|
||||||
|
scene.TriggerEstateSunUpdate();
|
||||||
|
|
||||||
|
UserManager = scene.RequestModuleInterface<IUserManagement>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Close()
|
||||||
|
{
|
||||||
|
m_commands.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region Packet Data Responders
|
#region Packet Data Responders
|
||||||
|
|
||||||
private void sendDetailedEstateData(IClientAPI remote_client, UUID invoice)
|
private void sendDetailedEstateData(IClientAPI remote_client, UUID invoice)
|
||||||
|
@ -177,6 +229,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
Scene.RegionInfo.RegionSettings.TerrainTexture4 = texture;
|
Scene.RegionInfo.RegionSettings.TerrainTexture4 = texture;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Scene.RegionInfo.RegionSettings.Save();
|
Scene.RegionInfo.RegionSettings.Save();
|
||||||
TriggerRegionInfoChange();
|
TriggerRegionInfoChange();
|
||||||
sendRegionInfoPacketToAll();
|
sendRegionInfoPacketToAll();
|
||||||
|
@ -203,6 +256,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
Scene.RegionInfo.RegionSettings.Elevation2NE = highValue;
|
Scene.RegionInfo.RegionSettings.Elevation2NE = highValue;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Scene.RegionInfo.RegionSettings.Save();
|
Scene.RegionInfo.RegionSettings.Save();
|
||||||
TriggerRegionInfoChange();
|
TriggerRegionInfoChange();
|
||||||
sendRegionHandshakeToAll();
|
sendRegionHandshakeToAll();
|
||||||
|
@ -243,6 +297,12 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
|
|
||||||
private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds)
|
private void handleEstateRestartSimRequest(IClientAPI remoteClient, int timeInSeconds)
|
||||||
{
|
{
|
||||||
|
if (!AllowRegionRestartFromClient)
|
||||||
|
{
|
||||||
|
remoteClient.SendAlertMessage("Region restart has been disabled on this simulator.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
IRestartModule restartModule = Scene.RequestModuleInterface<IRestartModule>();
|
IRestartModule restartModule = Scene.RequestModuleInterface<IRestartModule>();
|
||||||
if (restartModule != null)
|
if (restartModule != null)
|
||||||
{
|
{
|
||||||
|
@ -317,6 +377,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((estateAccessType & 8) != 0) // User remove
|
if ((estateAccessType & 8) != 0) // User remove
|
||||||
{
|
{
|
||||||
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true))
|
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true))
|
||||||
|
@ -348,6 +409,7 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
|
remote_client.SendAlertMessage("Method EstateAccessDelta Failed, you don't have permissions");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((estateAccessType & 16) != 0) // Group add
|
if ((estateAccessType & 16) != 0) // Group add
|
||||||
{
|
{
|
||||||
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true))
|
if (Scene.Permissions.CanIssueEstateCommand(remote_client.AgentId, true))
|
||||||
|
@ -1071,45 +1133,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region IRegionModule Members
|
|
||||||
|
|
||||||
public string Name { get { return "EstateManagementModule"; } }
|
|
||||||
|
|
||||||
public Type ReplaceableInterface { get { return null; } }
|
|
||||||
|
|
||||||
public void Initialise(IConfigSource source) {}
|
|
||||||
|
|
||||||
public void AddRegion(Scene scene)
|
|
||||||
{
|
|
||||||
Scene = scene;
|
|
||||||
Scene.RegisterModuleInterface<IEstateModule>(this);
|
|
||||||
Scene.EventManager.OnNewClient += EventManager_OnNewClient;
|
|
||||||
Scene.EventManager.OnRequestChangeWaterHeight += changeWaterHeight;
|
|
||||||
|
|
||||||
m_Telehub = new TelehubManager(scene);
|
|
||||||
|
|
||||||
m_commands = new EstateManagementCommands(this);
|
|
||||||
m_commands.Initialise();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void RemoveRegion(Scene scene) {}
|
|
||||||
|
|
||||||
public void RegionLoaded(Scene scene)
|
|
||||||
{
|
|
||||||
// Sets up the sun module based no the saved Estate and Region Settings
|
|
||||||
// DO NOT REMOVE or the sun will stop working
|
|
||||||
scene.TriggerEstateSunUpdate();
|
|
||||||
|
|
||||||
UserManager = scene.RequestModuleInterface<IUserManagement>();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close()
|
|
||||||
{
|
|
||||||
m_commands.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Other Functions
|
#region Other Functions
|
||||||
|
|
||||||
public void changeWaterHeight(float height)
|
public void changeWaterHeight(float height)
|
||||||
|
|
|
@ -370,6 +370,12 @@
|
||||||
; alert_uri = "http://myappserver.net/my_handler/"
|
; alert_uri = "http://myappserver.net/my_handler/"
|
||||||
|
|
||||||
|
|
||||||
|
[EstateManagement]
|
||||||
|
; If false, then block any region restart requests from the client even if they are otherwise valid.
|
||||||
|
; Default is true
|
||||||
|
AllowRegionRestartFromClient = true
|
||||||
|
|
||||||
|
|
||||||
[SMTP]
|
[SMTP]
|
||||||
enabled = false
|
enabled = false
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue