aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2010-01-10 03:17:40 +0000
committerMelanie2010-01-10 03:17:40 +0000
commitb0a7bcb2c814554dff4fc6dcdcd45ccf700601e9 (patch)
treef4bf5a5671077f9ecec4742b359950d3858f029f /OpenSim
parentRemove "login disable", "login enable" and "login status" commands. (diff)
downloadopensim-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)
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Resources/CoreModulePlugin.addin.xml1
-rw-r--r--OpenSim/Region/CoreModules/World/Access/AccessModule.cs82
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs14
3 files changed, 92 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
28using System;
29using System.Collections.Generic;
30using System.Reflection;
31using log4net;
32using Nini.Config;
33using OpenMetaverse;
34using OpenSim.Framework;
35using OpenSim.Framework.Communications.Cache;
36using OpenSim.Region.Framework.Interfaces;
37using OpenSim.Region.Framework.Scenes;
38using OpenSim.Services.Interfaces;
39
40namespace 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;