diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 18 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs | 25 |
2 files changed, 41 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 4aae13c..e9f5f9e 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -94,7 +94,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
94 | // root agents when ACL denies access to root agent | 94 | // root agents when ACL denies access to root agent |
95 | public bool m_strictAccessControl = true; | 95 | public bool m_strictAccessControl = true; |
96 | public int MaxUndoCount = 5; | 96 | public int MaxUndoCount = 5; |
97 | // Using this for RegionReady module to prevent LoginsDisabled from changing under our feet; | ||
98 | public bool LoginLock = false; | ||
97 | public bool LoginsDisabled = true; | 99 | public bool LoginsDisabled = true; |
100 | public bool StartDisabled = false; | ||
98 | public bool LoadingPrims; | 101 | public bool LoadingPrims; |
99 | public IXfer XferManager; | 102 | public IXfer XferManager; |
100 | 103 | ||
@@ -1373,10 +1376,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
1373 | IConfig startupConfig = m_config.Configs["Startup"]; | 1376 | IConfig startupConfig = m_config.Configs["Startup"]; |
1374 | if (startupConfig == null || !startupConfig.GetBoolean("StartDisabled", false)) | 1377 | if (startupConfig == null || !startupConfig.GetBoolean("StartDisabled", false)) |
1375 | { | 1378 | { |
1379 | if (m_sceneGraph.GetActiveScriptsCount() == 0) | ||
1380 | { | ||
1381 | LoginLock = false; | ||
1382 | } | ||
1376 | m_log.DebugFormat("[REGION]: Enabling logins for {0}", RegionInfo.RegionName); | 1383 | m_log.DebugFormat("[REGION]: Enabling logins for {0}", RegionInfo.RegionName); |
1377 | LoginsDisabled = false; | 1384 | // For RegionReady lockouts |
1385 | if( LoginLock == false) | ||
1386 | { | ||
1387 | LoginsDisabled = false; | ||
1388 | } | ||
1378 | m_sceneGridService.InformNeighborsThatRegionisUp(RequestModuleInterface<INeighbourService>(), RegionInfo); | 1389 | m_sceneGridService.InformNeighborsThatRegionisUp(RequestModuleInterface<INeighbourService>(), RegionInfo); |
1379 | } | 1390 | } |
1391 | else | ||
1392 | { | ||
1393 | StartDisabled = true; | ||
1394 | LoginsDisabled = true; | ||
1395 | } | ||
1380 | } | 1396 | } |
1381 | } | 1397 | } |
1382 | catch (NotImplementedException) | 1398 | catch (NotImplementedException) |
diff --git a/OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs b/OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs index 122ad40..c59c88c 100644 --- a/OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs +++ b/OpenSim/Region/OptionalModules/Scripting/RegionReadyModule/RegionReadyModule.cs | |||
@@ -28,10 +28,13 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Reflection; | 30 | using System.Reflection; |
31 | using System.Net; | ||
32 | using System.IO; | ||
31 | 33 | ||
32 | using log4net; | 34 | using log4net; |
33 | using Nini.Config; | 35 | using Nini.Config; |
34 | using OpenMetaverse; | 36 | using OpenMetaverse; |
37 | using OpenMetaverse.StructuredData; | ||
35 | 38 | ||
36 | using OpenSim.Framework; | 39 | using OpenSim.Framework; |
37 | using OpenSim.Region.Framework.Interfaces; | 40 | using OpenSim.Region.Framework.Interfaces; |
@@ -50,6 +53,7 @@ namespace OpenSim.Region.OptionalModules.Scripting.RegionReady | |||
50 | private bool m_lastOarLoadedOk; | 53 | private bool m_lastOarLoadedOk; |
51 | private int m_channelNotify = -1000; | 54 | private int m_channelNotify = -1000; |
52 | private bool m_enabled = false; | 55 | private bool m_enabled = false; |
56 | private bool m_disable_logins = false; | ||
53 | 57 | ||
54 | Scene m_scene = null; | 58 | Scene m_scene = null; |
55 | 59 | ||
@@ -68,10 +72,12 @@ namespace OpenSim.Region.OptionalModules.Scripting.RegionReady | |||
68 | if (m_config != null) | 72 | if (m_config != null) |
69 | { | 73 | { |
70 | m_enabled = m_config.GetBoolean("enabled", false); | 74 | m_enabled = m_config.GetBoolean("enabled", false); |
75 | |||
71 | if (m_enabled) | 76 | if (m_enabled) |
72 | { | 77 | { |
73 | m_channelNotify = m_config.GetInt("channel_notify", m_channelNotify); | 78 | m_channelNotify = m_config.GetInt("channel_notify", m_channelNotify); |
74 | } | 79 | m_disable_logins = m_config.GetBoolean("login_disable", false); |
80 | } | ||
75 | } | 81 | } |
76 | 82 | ||
77 | // if (!m_enabled) | 83 | // if (!m_enabled) |
@@ -93,6 +99,13 @@ namespace OpenSim.Region.OptionalModules.Scripting.RegionReady | |||
93 | m_scene.EventManager.OnOarFileLoaded += OnOarFileLoaded; | 99 | m_scene.EventManager.OnOarFileLoaded += OnOarFileLoaded; |
94 | 100 | ||
95 | m_log.DebugFormat("[RegionReady]: Enabled for region {0}", scene.RegionInfo.RegionName); | 101 | m_log.DebugFormat("[RegionReady]: Enabled for region {0}", scene.RegionInfo.RegionName); |
102 | |||
103 | if(m_disable_logins == true) | ||
104 | { | ||
105 | scene.LoginLock = true; | ||
106 | scene.LoginsDisabled = true; | ||
107 | m_log.InfoFormat("[RegionReady]: Logins disabled for {0}",m_scene.RegionInfo.RegionName); | ||
108 | } | ||
96 | } | 109 | } |
97 | 110 | ||
98 | public void RemoveRegion(Scene scene) | 111 | public void RemoveRegion(Scene scene) |
@@ -148,6 +161,16 @@ namespace OpenSim.Region.OptionalModules.Scripting.RegionReady | |||
148 | c.SenderUUID = UUID.Zero; | 161 | c.SenderUUID = UUID.Zero; |
149 | c.Scene = m_scene; | 162 | c.Scene = m_scene; |
150 | 163 | ||
164 | if(m_disable_logins == true) | ||
165 | { | ||
166 | if(m_scene.StartDisabled == false) | ||
167 | { | ||
168 | m_scene.LoginsDisabled = false; | ||
169 | m_scene.LoginLock = false; | ||
170 | m_log.InfoFormat("[RegionReady]: Logins enabled for {0}", m_scene.RegionInfo.RegionName); | ||
171 | } | ||
172 | } | ||
173 | |||
151 | m_log.InfoFormat("[RegionReady]: Region \"{0}\" is ready: \"{1}\" on channel {2}", | 174 | m_log.InfoFormat("[RegionReady]: Region \"{0}\" is ready: \"{1}\" on channel {2}", |
152 | m_scene.RegionInfo.RegionName, c.Message, m_channelNotify); | 175 | m_scene.RegionInfo.RegionName, c.Message, m_channelNotify); |
153 | m_scene.EventManager.TriggerOnChatBroadcast(this, c); | 176 | m_scene.EventManager.TriggerOnChatBroadcast(this, c); |