aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2010-01-11 22:52:05 +0000
committerMelanie2010-01-11 22:52:05 +0000
commit7467a471ca2d3e6066f89d8bca4ba956e07fbb6b (patch)
tree1a3c2e21cf8550a26664d67b42e51840684e0bc3
parentMerge branch 'master' of ssh://justincc@opensimulator.org/var/git/opensim (diff)
downloadopensim-SC_OLD-7467a471ca2d3e6066f89d8bca4ba956e07fbb6b.zip
opensim-SC_OLD-7467a471ca2d3e6066f89d8bca4ba956e07fbb6b.tar.gz
opensim-SC_OLD-7467a471ca2d3e6066f89d8bca4ba956e07fbb6b.tar.bz2
opensim-SC_OLD-7467a471ca2d3e6066f89d8bca4ba956e07fbb6b.tar.xz
Add the option to reject duplicate region names
-rw-r--r--OpenSim/Services/GridService/GridService.cs25
-rw-r--r--bin/OpenSim.Server.ini.example1
2 files changed, 26 insertions, 0 deletions
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs
index 86815e5..a500593 100644
--- a/OpenSim/Services/GridService/GridService.cs
+++ b/OpenSim/Services/GridService/GridService.cs
@@ -46,10 +46,18 @@ namespace OpenSim.Services.GridService
46 LogManager.GetLogger( 46 LogManager.GetLogger(
47 MethodBase.GetCurrentMethod().DeclaringType); 47 MethodBase.GetCurrentMethod().DeclaringType);
48 48
49 protected bool m_AllowDuplicateNames = false;
50
49 public GridService(IConfigSource config) 51 public GridService(IConfigSource config)
50 : base(config) 52 : base(config)
51 { 53 {
52 m_log.DebugFormat("[GRID SERVICE]: Starting..."); 54 m_log.DebugFormat("[GRID SERVICE]: Starting...");
55
56 IConfig gridConfig = config.Configs["GridService"];
57 if (gridConfig != null)
58 {
59 m_AllowDuplicateNames = gridConfig.GetBoolean("AllowDuplicateNames", m_AllowDuplicateNames);
60 }
53 } 61 }
54 62
55 #region IGridService 63 #region IGridService
@@ -82,6 +90,23 @@ namespace OpenSim.Services.GridService
82 } 90 }
83 } 91 }
84 92
93 if (!m_AllowDuplicateNames)
94 {
95 List<RegionData> dupe = m_Database.Get(regionInfos.RegionName, scopeID);
96 if (dupe != null && dupe.Count > 0)
97 {
98 foreach (RegionData d in dupe)
99 {
100 if (d.RegionID != regionInfos.RegionID)
101 {
102 m_log.WarnFormat("[GRID SERVICE]: Region {0} tried to register duplicate name with ID {1}.",
103 regionInfos.RegionName, regionInfos.RegionID);
104 return false;
105 }
106 }
107 }
108 }
109
85 // Everything is ok, let's register 110 // Everything is ok, let's register
86 RegionData rdata = RegionInfo2RegionData(regionInfos); 111 RegionData rdata = RegionInfo2RegionData(regionInfos);
87 rdata.ScopeID = scopeID; 112 rdata.ScopeID = scopeID;
diff --git a/bin/OpenSim.Server.ini.example b/bin/OpenSim.Server.ini.example
index 12af0cd..d4e05af 100644
--- a/bin/OpenSim.Server.ini.example
+++ b/bin/OpenSim.Server.ini.example
@@ -80,3 +80,4 @@ LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
80StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData" 80StorageProvider = "OpenSim.Data.MySQL.dll:MySqlRegionData"
81ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=grid;" 81ConnectionString = "Data Source=localhost;Database=opensim;User ID=opensim;Password=grid;"
82Realm = "regions" 82Realm = "regions"
83; AllowDuplicateNames = "True"