diff options
author | Melanie | 2010-01-10 03:17:40 +0000 |
---|---|---|
committer | Melanie | 2010-01-10 03:17:40 +0000 |
commit | b0a7bcb2c814554dff4fc6dcdcd45ccf700601e9 (patch) | |
tree | f4bf5a5671077f9ecec4742b359950d3858f029f | |
parent | Remove "login disable", "login enable" and "login status" commands. (diff) | |
download | opensim-SC-b0a7bcb2c814554dff4fc6dcdcd45ccf700601e9.zip opensim-SC-b0a7bcb2c814554dff4fc6dcdcd45ccf700601e9.tar.gz opensim-SC-b0a7bcb2c814554dff4fc6dcdcd45ccf700601e9.tar.bz2 opensim-SC-b0a7bcb2c814554dff4fc6dcdcd45ccf700601e9.tar.xz |
Add "StartDisabled" to [Startup] to make all regions start up with
logins disabled until enabled from the console. Add the AccessModule (WIP)
-rw-r--r-- | OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml | 1 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/World/Access/AccessModule.cs | 82 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 14 | ||||
-rw-r--r-- | bin/OpenSim.ini.example | 3 |
4 files changed, 95 insertions, 5 deletions
diff --git a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml index beb2307..ebc7f59 100644 --- a/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml +++ b/OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml | |||
@@ -47,6 +47,7 @@ | |||
47 | <RegionModule id="LandServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Land.LandServiceInConnectorModule" /> | 47 | <RegionModule id="LandServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Land.LandServiceInConnectorModule" /> |
48 | <RegionModule id="NeighbourServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Neighbour.NeighbourServiceInConnectorModule" /> \ | 48 | <RegionModule id="NeighbourServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Neighbour.NeighbourServiceInConnectorModule" /> \ |
49 | <RegionModule id="HypergridServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid.HypergridServiceInConnectorModule" /> \ | 49 | <RegionModule id="HypergridServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid.HypergridServiceInConnectorModule" /> \ |
50 | <RegionModule id="AccessModule" type="OpenSim.Region.CoreModules.World.AccessModule" /> \ | ||
50 | 51 | ||
51 | </Extension> | 52 | </Extension> |
52 | 53 | ||
diff --git a/OpenSim/Region/CoreModules/World/Access/AccessModule.cs b/OpenSim/Region/CoreModules/World/Access/AccessModule.cs new file mode 100644 index 0000000..108dcfb --- /dev/null +++ b/OpenSim/Region/CoreModules/World/Access/AccessModule.cs | |||
@@ -0,0 +1,82 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.org/ | ||
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | ||
4 | * | ||
5 | * Redistribution and use in source and binary forms, with or without | ||
6 | * modification, are permitted provided that the following conditions are met: | ||
7 | * * Redistributions of source code must retain the above copyright | ||
8 | * notice, this list of conditions and the following disclaimer. | ||
9 | * * Redistributions in binary form must reproduce the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer in the | ||
11 | * documentation and/or other materials provided with the distribution. | ||
12 | * * Neither the name of the OpenSimulator Project nor the | ||
13 | * names of its contributors may be used to endorse or promote products | ||
14 | * derived from this software without specific prior written permission. | ||
15 | * | ||
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY | ||
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | ||
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
26 | */ | ||
27 | |||
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Reflection; | ||
31 | using log4net; | ||
32 | using Nini.Config; | ||
33 | using OpenMetaverse; | ||
34 | using OpenSim.Framework; | ||
35 | using OpenSim.Framework.Communications.Cache; | ||
36 | using OpenSim.Region.Framework.Interfaces; | ||
37 | using OpenSim.Region.Framework.Scenes; | ||
38 | using OpenSim.Services.Interfaces; | ||
39 | |||
40 | namespace OpenSim.Region.CoreModules.World | ||
41 | { | ||
42 | public class AccessModule : ISharedRegionModule | ||
43 | { | ||
44 | private static readonly ILog m_log = | ||
45 | LogManager.GetLogger( | ||
46 | MethodBase.GetCurrentMethod().DeclaringType); | ||
47 | |||
48 | public void Initialise(IConfigSource config) | ||
49 | { | ||
50 | } | ||
51 | |||
52 | public void PostInitialise() | ||
53 | { | ||
54 | } | ||
55 | |||
56 | public void Close() | ||
57 | { | ||
58 | } | ||
59 | |||
60 | public string Name | ||
61 | { | ||
62 | get { return "AccessModule"; } | ||
63 | } | ||
64 | |||
65 | public Type ReplaceableInterface | ||
66 | { | ||
67 | get { return null; } | ||
68 | } | ||
69 | |||
70 | public void AddRegion(Scene scene) | ||
71 | { | ||
72 | } | ||
73 | |||
74 | public void RemoveRegion(Scene scene) | ||
75 | { | ||
76 | } | ||
77 | |||
78 | public void RegionLoaded(Scene scene) | ||
79 | { | ||
80 | } | ||
81 | } | ||
82 | } | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 183d811..da0b8e4 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -144,7 +144,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
144 | public CommunicationsManager CommsManager; | 144 | public CommunicationsManager CommsManager; |
145 | 145 | ||
146 | protected SceneCommunicationService m_sceneGridService; | 146 | protected SceneCommunicationService m_sceneGridService; |
147 | public bool loginsdisabled = true; | 147 | public bool LoginsDisabled = true; |
148 | 148 | ||
149 | public new float TimeDilation | 149 | public new float TimeDilation |
150 | { | 150 | { |
@@ -1275,15 +1275,19 @@ namespace OpenSim.Region.Framework.Scenes | |||
1275 | StatsReporter.addScriptLines(m_sceneGraph.GetScriptLPS()); | 1275 | StatsReporter.addScriptLines(m_sceneGraph.GetScriptLPS()); |
1276 | } | 1276 | } |
1277 | 1277 | ||
1278 | if (loginsdisabled && m_frame > 20) | 1278 | if (LoginsDisabled && m_frame > 20) |
1279 | { | 1279 | { |
1280 | // In 99.9% of cases it is a bad idea to manually force garbage collection. However, | 1280 | // In 99.9% of cases it is a bad idea to manually force garbage collection. However, |
1281 | // this is a rare case where we know we have just went through a long cycle of heap | 1281 | // this is a rare case where we know we have just went through a long cycle of heap |
1282 | // allocations, and there is no more work to be done until someone logs in | 1282 | // allocations, and there is no more work to be done until someone logs in |
1283 | GC.Collect(); | 1283 | GC.Collect(); |
1284 | 1284 | ||
1285 | m_log.DebugFormat("[REGION]: Enabling logins for {0}", RegionInfo.RegionName); | 1285 | IConfig startupConfig = m_config.Configs["Startup"]; |
1286 | loginsdisabled = false; | 1286 | if (startupConfig == null || !startupConfig.GetBoolean("StartDisabled", false)) |
1287 | { | ||
1288 | m_log.DebugFormat("[REGION]: Enabling logins for {0}", RegionInfo.RegionName); | ||
1289 | LoginsDisabled = false; | ||
1290 | } | ||
1287 | } | 1291 | } |
1288 | } | 1292 | } |
1289 | catch (NotImplementedException) | 1293 | catch (NotImplementedException) |
@@ -3348,7 +3352,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
3348 | // TeleportFlags.ViaLandmark | TeleportFlags.ViaLocation | TeleportFlags.ViaLandmark | TeleportFlags.Default - Regular Teleport | 3352 | // TeleportFlags.ViaLandmark | TeleportFlags.ViaLocation | TeleportFlags.ViaLandmark | TeleportFlags.Default - Regular Teleport |
3349 | 3353 | ||
3350 | 3354 | ||
3351 | if (loginsdisabled) | 3355 | if (LoginsDisabled) |
3352 | { | 3356 | { |
3353 | reason = "Logins Disabled"; | 3357 | reason = "Logins Disabled"; |
3354 | return false; | 3358 | return false; |
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example index 15623de..af6345a 100644 --- a/bin/OpenSim.ini.example +++ b/bin/OpenSim.ini.example | |||
@@ -268,6 +268,9 @@ | |||
268 | ; Enable JSON simulator data by setting a URI name (case sensitive) | 268 | ; Enable JSON simulator data by setting a URI name (case sensitive) |
269 | ; Stats_URI = "jsonSimStats" | 269 | ; Stats_URI = "jsonSimStats" |
270 | 270 | ||
271 | ; Make OpenSim start all regions woth logins disabled. They will need | ||
272 | ; to be enabled from the console if this is set | ||
273 | ; StartDisabled = false | ||
271 | 274 | ||
272 | [SMTP] | 275 | [SMTP] |
273 | enabled=false | 276 | enabled=false |