aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services/GridService
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services/GridService')
-rw-r--r--OpenSim/Services/GridService/GridService.cs25
1 files changed, 25 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;