aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/World')
-rw-r--r--OpenSim/Region/CoreModules/World/Access/AccessModule.cs6
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs18
-rw-r--r--OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs50
-rw-r--r--OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs2
-rw-r--r--OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs12
-rw-r--r--OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs12
-rw-r--r--OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs6
-rw-r--r--OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs212
8 files changed, 244 insertions, 74 deletions
diff --git a/OpenSim/Region/CoreModules/World/Access/AccessModule.cs b/OpenSim/Region/CoreModules/World/Access/AccessModule.cs
index c355b13..2399134 100644
--- a/OpenSim/Region/CoreModules/World/Access/AccessModule.cs
+++ b/OpenSim/Region/CoreModules/World/Access/AccessModule.cs
@@ -129,14 +129,12 @@ namespace OpenSim.Region.CoreModules.World
129 switch (cmd[1]) 129 switch (cmd[1])
130 { 130 {
131 case "enable": 131 case "enable":
132 if (scene.LoginsDisabled)
133 MainConsole.Instance.Output(String.Format("Enabling logins for region {0}", scene.RegionInfo.RegionName));
134 scene.LoginsDisabled = false; 132 scene.LoginsDisabled = false;
133 MainConsole.Instance.Output(String.Format("Logins are enabled for region {0}", scene.RegionInfo.RegionName));
135 break; 134 break;
136 case "disable": 135 case "disable":
137 if (!scene.LoginsDisabled)
138 MainConsole.Instance.Output(String.Format("Disabling logins for region {0}", scene.RegionInfo.RegionName));
139 scene.LoginsDisabled = true; 136 scene.LoginsDisabled = true;
137 MainConsole.Instance.Output(String.Format("Logins are disabled for region {0}", scene.RegionInfo.RegionName));
140 break; 138 break;
141 case "status": 139 case "status":
142 if (scene.LoginsDisabled) 140 if (scene.LoginsDisabled)
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
index 6ba3459..b185d9b 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
@@ -68,8 +68,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
68 SerialiserModule serialiserModule = new SerialiserModule(); 68 SerialiserModule serialiserModule = new SerialiserModule();
69 TerrainModule terrainModule = new TerrainModule(); 69 TerrainModule terrainModule = new TerrainModule();
70 70
71 m_scene = SceneSetupHelpers.SetupScene(); 71 m_scene = SceneHelpers.SetupScene();
72 SceneSetupHelpers.SetupSceneModules(m_scene, m_archiverModule, serialiserModule, terrainModule); 72 SceneHelpers.SetupSceneModules(m_scene, m_archiverModule, serialiserModule, terrainModule);
73 } 73 }
74 74
75 private void LoadCompleted(Guid requestId, string errorMessage) 75 private void LoadCompleted(Guid requestId, string errorMessage)
@@ -125,7 +125,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
125 [Test] 125 [Test]
126 public void TestSaveOar() 126 public void TestSaveOar()
127 { 127 {
128 TestHelper.InMethod(); 128 TestHelpers.InMethod();
129// log4net.Config.XmlConfigurator.Configure(); 129// log4net.Config.XmlConfigurator.Configure();
130 130
131 SceneObjectPart part1 = CreateSceneObjectPart1(); 131 SceneObjectPart part1 = CreateSceneObjectPart1();
@@ -217,7 +217,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
217 [Test] 217 [Test]
218 public void TestSaveOarNoAssets() 218 public void TestSaveOarNoAssets()
219 { 219 {
220 TestHelper.InMethod(); 220 TestHelpers.InMethod();
221// log4net.Config.XmlConfigurator.Configure(); 221// log4net.Config.XmlConfigurator.Configure();
222 222
223 SceneObjectPart part1 = CreateSceneObjectPart1(); 223 SceneObjectPart part1 = CreateSceneObjectPart1();
@@ -300,7 +300,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
300 [Test] 300 [Test]
301 public void TestLoadOar() 301 public void TestLoadOar()
302 { 302 {
303 TestHelper.InMethod(); 303 TestHelpers.InMethod();
304// log4net.Config.XmlConfigurator.Configure(); 304// log4net.Config.XmlConfigurator.Configure();
305 305
306 MemoryStream archiveWriteStream = new MemoryStream(); 306 MemoryStream archiveWriteStream = new MemoryStream();
@@ -409,7 +409,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
409 [Test] 409 [Test]
410 public void TestLoadOarRegionSettings() 410 public void TestLoadOarRegionSettings()
411 { 411 {
412 TestHelper.InMethod(); 412 TestHelpers.InMethod();
413 //log4net.Config.XmlConfigurator.Configure(); 413 //log4net.Config.XmlConfigurator.Configure();
414 414
415 MemoryStream archiveWriteStream = new MemoryStream(); 415 MemoryStream archiveWriteStream = new MemoryStream();
@@ -505,7 +505,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
505 //[Test] 505 //[Test]
506 public void TestMergeOar() 506 public void TestMergeOar()
507 { 507 {
508 TestHelper.InMethod(); 508 TestHelpers.InMethod();
509 //XmlConfigurator.Configure(); 509 //XmlConfigurator.Configure();
510 510
511 MemoryStream archiveWriteStream = new MemoryStream(); 511 MemoryStream archiveWriteStream = new MemoryStream();
@@ -524,8 +524,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
524 SerialiserModule serialiserModule = new SerialiserModule(); 524 SerialiserModule serialiserModule = new SerialiserModule();
525 TerrainModule terrainModule = new TerrainModule(); 525 TerrainModule terrainModule = new TerrainModule();
526 526
527 Scene scene = SceneSetupHelpers.SetupScene(); 527 Scene scene = SceneHelpers.SetupScene();
528 SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); 528 SceneHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule);
529 529
530 m_scene.AddNewSceneObject(new SceneObjectGroup(part2), false); 530 m_scene.AddNewSceneObject(new SceneObjectGroup(part2), false);
531 531
diff --git a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
index a3aa38d..e553ffa 100644
--- a/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
+++ b/OpenSim/Region/CoreModules/World/Land/Tests/PrimCountModuleTests.cs
@@ -64,8 +64,8 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
64 { 64 {
65 m_pcm = new PrimCountModule(); 65 m_pcm = new PrimCountModule();
66 LandManagementModule lmm = new LandManagementModule(); 66 LandManagementModule lmm = new LandManagementModule();
67 m_scene = SceneSetupHelpers.SetupScene(); 67 m_scene = SceneHelpers.SetupScene();
68 SceneSetupHelpers.SetupSceneModules(m_scene, lmm, m_pcm); 68 SceneHelpers.SetupSceneModules(m_scene, lmm, m_pcm);
69 69
70 int xParcelDivider = (int)Constants.RegionSize - 1; 70 int xParcelDivider = (int)Constants.RegionSize - 1;
71 71
@@ -106,12 +106,12 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
106 [Test] 106 [Test]
107 public void TestAddOwnerObject() 107 public void TestAddOwnerObject()
108 { 108 {
109 TestHelper.InMethod(); 109 TestHelpers.InMethod();
110// log4net.Config.XmlConfigurator.Configure(); 110// log4net.Config.XmlConfigurator.Configure();
111 111
112 IPrimCounts pc = m_lo.PrimCounts; 112 IPrimCounts pc = m_lo.PrimCounts;
113 113
114 SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01); 114 SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_userId, "a", 0x01);
115 m_scene.AddNewSceneObject(sog, false); 115 m_scene.AddNewSceneObject(sog, false);
116 116
117 Assert.That(pc.Owner, Is.EqualTo(3)); 117 Assert.That(pc.Owner, Is.EqualTo(3));
@@ -124,7 +124,7 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
124 Assert.That(pc.Simulator, Is.EqualTo(3)); 124 Assert.That(pc.Simulator, Is.EqualTo(3));
125 125
126 // Add a second object and retest 126 // Add a second object and retest
127 SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, "b", 0x10); 127 SceneObjectGroup sog2 = SceneHelpers.CreateSceneObject(2, m_userId, "b", 0x10);
128 m_scene.AddNewSceneObject(sog2, false); 128 m_scene.AddNewSceneObject(sog2, false);
129 129
130 Assert.That(pc.Owner, Is.EqualTo(5)); 130 Assert.That(pc.Owner, Is.EqualTo(5));
@@ -143,12 +143,12 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
143 [Test] 143 [Test]
144 public void TestCopyOwnerObject() 144 public void TestCopyOwnerObject()
145 { 145 {
146 TestHelper.InMethod(); 146 TestHelpers.InMethod();
147// log4net.Config.XmlConfigurator.Configure(); 147// log4net.Config.XmlConfigurator.Configure();
148 148
149 IPrimCounts pc = m_lo.PrimCounts; 149 IPrimCounts pc = m_lo.PrimCounts;
150 150
151 SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01); 151 SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_userId, "a", 0x01);
152 m_scene.AddNewSceneObject(sog, false); 152 m_scene.AddNewSceneObject(sog, false);
153 m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, 0, m_userId, UUID.Zero, Quaternion.Identity); 153 m_scene.SceneGraph.DuplicateObject(sog.LocalId, Vector3.Zero, 0, m_userId, UUID.Zero, Quaternion.Identity);
154 154
@@ -169,12 +169,12 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
169 [Test] 169 [Test]
170 public void TestMoveOwnerObject() 170 public void TestMoveOwnerObject()
171 { 171 {
172 TestHelper.InMethod(); 172 TestHelpers.InMethod();
173// log4net.Config.XmlConfigurator.Configure(); 173// log4net.Config.XmlConfigurator.Configure();
174 174
175 SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01); 175 SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_userId, "a", 0x01);
176 m_scene.AddNewSceneObject(sog, false); 176 m_scene.AddNewSceneObject(sog, false);
177 SceneObjectGroup sog2 = SceneSetupHelpers.CreateSceneObject(2, m_userId, "b", 0x10); 177 SceneObjectGroup sog2 = SceneHelpers.CreateSceneObject(2, m_userId, "b", 0x10);
178 m_scene.AddNewSceneObject(sog2, false); 178 m_scene.AddNewSceneObject(sog2, false);
179 179
180 // Move the first scene object to the eastern strip parcel 180 // Move the first scene object to the eastern strip parcel
@@ -230,13 +230,13 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
230 [Test] 230 [Test]
231 public void TestRemoveOwnerObject() 231 public void TestRemoveOwnerObject()
232 { 232 {
233 TestHelper.InMethod(); 233 TestHelpers.InMethod();
234// log4net.Config.XmlConfigurator.Configure(); 234// log4net.Config.XmlConfigurator.Configure();
235 235
236 IPrimCounts pc = m_lo.PrimCounts; 236 IPrimCounts pc = m_lo.PrimCounts;
237 237
238 m_scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, m_userId, "a", 0x1), false); 238 m_scene.AddNewSceneObject(SceneHelpers.CreateSceneObject(1, m_userId, "a", 0x1), false);
239 SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_userId, "b", 0x10); 239 SceneObjectGroup sogToDelete = SceneHelpers.CreateSceneObject(3, m_userId, "b", 0x10);
240 m_scene.AddNewSceneObject(sogToDelete, false); 240 m_scene.AddNewSceneObject(sogToDelete, false);
241 m_scene.DeleteSceneObject(sogToDelete, false); 241 m_scene.DeleteSceneObject(sogToDelete, false);
242 242
@@ -253,14 +253,14 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
253 [Test] 253 [Test]
254 public void TestAddGroupObject() 254 public void TestAddGroupObject()
255 { 255 {
256 TestHelper.InMethod(); 256 TestHelpers.InMethod();
257// log4net.Config.XmlConfigurator.Configure(); 257// log4net.Config.XmlConfigurator.Configure();
258 258
259 m_lo.DeedToGroup(m_groupId); 259 m_lo.DeedToGroup(m_groupId);
260 260
261 IPrimCounts pc = m_lo.PrimCounts; 261 IPrimCounts pc = m_lo.PrimCounts;
262 262
263 SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, "a", 0x01); 263 SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_otherUserId, "a", 0x01);
264 sog.GroupID = m_groupId; 264 sog.GroupID = m_groupId;
265 m_scene.AddNewSceneObject(sog, false); 265 m_scene.AddNewSceneObject(sog, false);
266 266
@@ -284,18 +284,18 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
284 [Test] 284 [Test]
285 public void TestRemoveGroupObject() 285 public void TestRemoveGroupObject()
286 { 286 {
287 TestHelper.InMethod(); 287 TestHelpers.InMethod();
288// log4net.Config.XmlConfigurator.Configure(); 288// log4net.Config.XmlConfigurator.Configure();
289 289
290 m_lo.DeedToGroup(m_groupId); 290 m_lo.DeedToGroup(m_groupId);
291 291
292 IPrimCounts pc = m_lo.PrimCounts; 292 IPrimCounts pc = m_lo.PrimCounts;
293 293
294 SceneObjectGroup sogToKeep = SceneSetupHelpers.CreateSceneObject(1, m_userId, "a", 0x1); 294 SceneObjectGroup sogToKeep = SceneHelpers.CreateSceneObject(1, m_userId, "a", 0x1);
295 sogToKeep.GroupID = m_groupId; 295 sogToKeep.GroupID = m_groupId;
296 m_scene.AddNewSceneObject(sogToKeep, false); 296 m_scene.AddNewSceneObject(sogToKeep, false);
297 297
298 SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_userId, "b", 0x10); 298 SceneObjectGroup sogToDelete = SceneHelpers.CreateSceneObject(3, m_userId, "b", 0x10);
299 m_scene.AddNewSceneObject(sogToDelete, false); 299 m_scene.AddNewSceneObject(sogToDelete, false);
300 m_scene.DeleteSceneObject(sogToDelete, false); 300 m_scene.DeleteSceneObject(sogToDelete, false);
301 301
@@ -313,12 +313,12 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
313 [Test] 313 [Test]
314 public void TestAddOthersObject() 314 public void TestAddOthersObject()
315 { 315 {
316 TestHelper.InMethod(); 316 TestHelpers.InMethod();
317// log4net.Config.XmlConfigurator.Configure(); 317// log4net.Config.XmlConfigurator.Configure();
318 318
319 IPrimCounts pc = m_lo.PrimCounts; 319 IPrimCounts pc = m_lo.PrimCounts;
320 320
321 SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, "a", 0x01); 321 SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_otherUserId, "a", 0x01);
322 m_scene.AddNewSceneObject(sog, false); 322 m_scene.AddNewSceneObject(sog, false);
323 323
324 Assert.That(pc.Owner, Is.EqualTo(0)); 324 Assert.That(pc.Owner, Is.EqualTo(0));
@@ -334,13 +334,13 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
334 [Test] 334 [Test]
335 public void TestRemoveOthersObject() 335 public void TestRemoveOthersObject()
336 { 336 {
337 TestHelper.InMethod(); 337 TestHelpers.InMethod();
338// log4net.Config.XmlConfigurator.Configure(); 338// log4net.Config.XmlConfigurator.Configure();
339 339
340 IPrimCounts pc = m_lo.PrimCounts; 340 IPrimCounts pc = m_lo.PrimCounts;
341 341
342 m_scene.AddNewSceneObject(SceneSetupHelpers.CreateSceneObject(1, m_otherUserId, "a", 0x1), false); 342 m_scene.AddNewSceneObject(SceneHelpers.CreateSceneObject(1, m_otherUserId, "a", 0x1), false);
343 SceneObjectGroup sogToDelete = SceneSetupHelpers.CreateSceneObject(3, m_otherUserId, "b", 0x10); 343 SceneObjectGroup sogToDelete = SceneHelpers.CreateSceneObject(3, m_otherUserId, "b", 0x10);
344 m_scene.AddNewSceneObject(sogToDelete, false); 344 m_scene.AddNewSceneObject(sogToDelete, false);
345 m_scene.DeleteSceneObject(sogToDelete, false); 345 m_scene.DeleteSceneObject(sogToDelete, false);
346 346
@@ -360,10 +360,10 @@ namespace OpenSim.Region.CoreModules.World.Land.Tests
360 [Test] 360 [Test]
361 public void TestTaint() 361 public void TestTaint()
362 { 362 {
363 TestHelper.InMethod(); 363 TestHelpers.InMethod();
364 IPrimCounts pc = m_lo.PrimCounts; 364 IPrimCounts pc = m_lo.PrimCounts;
365 365
366 SceneObjectGroup sog = SceneSetupHelpers.CreateSceneObject(3, m_userId, "a", 0x01); 366 SceneObjectGroup sog = SceneHelpers.CreateSceneObject(3, m_userId, "a", 0x01);
367 m_scene.AddNewSceneObject(sog, false); 367 m_scene.AddNewSceneObject(sog, false);
368 368
369 m_pcm.TaintPrimCount(); 369 m_pcm.TaintPrimCount();
diff --git a/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs b/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs
index aa14054..1d2141e 100644
--- a/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs
+++ b/OpenSim/Region/CoreModules/World/LegacyMap/TexturedMapTileRenderer.cs
@@ -173,7 +173,7 @@ namespace OpenSim.Region.CoreModules.World.LegacyMap
173 private Bitmap fetchTexture(UUID id) 173 private Bitmap fetchTexture(UUID id)
174 { 174 {
175 AssetBase asset = m_scene.AssetService.Get(id.ToString()); 175 AssetBase asset = m_scene.AssetService.Get(id.ToString());
176 m_log.DebugFormat("Fetched texture {0}, found: {1}", id, asset != null); 176 m_log.DebugFormat("[TexturedMapTileRenderer]: Fetched texture {0}, found: {1}", id, asset != null);
177 if (asset == null) return null; 177 if (asset == null) return null;
178 178
179 ManagedImage managedImage; 179 ManagedImage managedImage;
diff --git a/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs b/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs
index d5b7082..4326606 100644
--- a/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs
+++ b/OpenSim/Region/CoreModules/World/Media/Moap/Tests/MoapTests.cs
@@ -53,17 +53,17 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap.Tests
53 public void SetUp() 53 public void SetUp()
54 { 54 {
55 m_module = new MoapModule(); 55 m_module = new MoapModule();
56 m_scene = SceneSetupHelpers.SetupScene(); 56 m_scene = SceneHelpers.SetupScene();
57 SceneSetupHelpers.SetupSceneModules(m_scene, m_module); 57 SceneHelpers.SetupSceneModules(m_scene, m_module);
58 } 58 }
59 59
60 [Test] 60 [Test]
61 public void TestClearMediaUrl() 61 public void TestClearMediaUrl()
62 { 62 {
63 TestHelper.InMethod(); 63 TestHelpers.InMethod();
64// log4net.Config.XmlConfigurator.Configure(); 64// log4net.Config.XmlConfigurator.Configure();
65 65
66 SceneObjectPart part = SceneSetupHelpers.AddSceneObject(m_scene); 66 SceneObjectPart part = SceneHelpers.AddSceneObject(m_scene);
67 MediaEntry me = new MediaEntry(); 67 MediaEntry me = new MediaEntry();
68 68
69 m_module.SetMediaEntry(part, 1, me); 69 m_module.SetMediaEntry(part, 1, me);
@@ -84,11 +84,11 @@ namespace OpenSim.Region.CoreModules.World.Media.Moap.Tests
84 [Test] 84 [Test]
85 public void TestSetMediaUrl() 85 public void TestSetMediaUrl()
86 { 86 {
87 TestHelper.InMethod(); 87 TestHelpers.InMethod();
88 88
89 string homeUrl = "opensimulator.org"; 89 string homeUrl = "opensimulator.org";
90 90
91 SceneObjectPart part = SceneSetupHelpers.AddSceneObject(m_scene); 91 SceneObjectPart part = SceneHelpers.AddSceneObject(m_scene);
92 MediaEntry me = new MediaEntry() { HomeURL = homeUrl }; 92 MediaEntry me = new MediaEntry() { HomeURL = homeUrl };
93 93
94 m_module.SetMediaEntry(part, 1, me); 94 m_module.SetMediaEntry(part, 1, me);
diff --git a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
index 4f752ab..d5b585a 100644
--- a/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
+++ b/OpenSim/Region/CoreModules/World/Serialiser/Tests/SerialiserTests.cs
@@ -236,14 +236,14 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
236 public void Init() 236 public void Init()
237 { 237 {
238 m_serialiserModule = new SerialiserModule(); 238 m_serialiserModule = new SerialiserModule();
239 m_scene = SceneSetupHelpers.SetupScene(); 239 m_scene = SceneHelpers.SetupScene();
240 SceneSetupHelpers.SetupSceneModules(m_scene, m_serialiserModule); 240 SceneHelpers.SetupSceneModules(m_scene, m_serialiserModule);
241 } 241 }
242 242
243 [Test] 243 [Test]
244 public void TestDeserializeXml() 244 public void TestDeserializeXml()
245 { 245 {
246 TestHelper.InMethod(); 246 TestHelpers.InMethod();
247 //log4net.Config.XmlConfigurator.Configure(); 247 //log4net.Config.XmlConfigurator.Configure();
248 248
249 SceneObjectGroup so = SceneObjectSerializer.FromOriginalXmlFormat(xml); 249 SceneObjectGroup so = SceneObjectSerializer.FromOriginalXmlFormat(xml);
@@ -259,7 +259,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
259 [Test] 259 [Test]
260 public void TestSerializeXml() 260 public void TestSerializeXml()
261 { 261 {
262 TestHelper.InMethod(); 262 TestHelpers.InMethod();
263 //log4net.Config.XmlConfigurator.Configure(); 263 //log4net.Config.XmlConfigurator.Configure();
264 264
265 string rpName = "My Little Donkey"; 265 string rpName = "My Little Donkey";
@@ -334,7 +334,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
334 [Test] 334 [Test]
335 public void TestDeserializeXml2() 335 public void TestDeserializeXml2()
336 { 336 {
337 TestHelper.InMethod(); 337 TestHelpers.InMethod();
338 //log4net.Config.XmlConfigurator.Configure(); 338 //log4net.Config.XmlConfigurator.Configure();
339 339
340 SceneObjectGroup so = m_serialiserModule.DeserializeGroupFromXml2(xml2); 340 SceneObjectGroup so = m_serialiserModule.DeserializeGroupFromXml2(xml2);
@@ -350,7 +350,7 @@ namespace OpenSim.Region.CoreModules.World.Serialiser.Tests
350 [Test] 350 [Test]
351 public void TestSerializeXml2() 351 public void TestSerializeXml2()
352 { 352 {
353 TestHelper.InMethod(); 353 TestHelpers.InMethod();
354 //log4net.Config.XmlConfigurator.Configure(); 354 //log4net.Config.XmlConfigurator.Configure();
355 355
356 string rpName = "My Little Pony"; 356 string rpName = "My Little Pony";
diff --git a/OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs b/OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs
index c2ad7b8..ab8e1bf 100644
--- a/OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs
+++ b/OpenSim/Region/CoreModules/World/Vegetation/VegetationModule.cs
@@ -100,15 +100,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Vegetation
100 { 100 {
101 case Tree.Cypress1: 101 case Tree.Cypress1:
102 case Tree.Cypress2: 102 case Tree.Cypress2:
103 tree.Scale = new Vector3(4, 4, 10); 103 tree.Scale *= new Vector3(8, 8, 20);
104 break; 104 break;
105 105
106 // case... other tree types 106 // case... other tree types
107 // tree.Scale = new Vector3(?, ?, ?); 107 // tree.Scale *= new Vector3(?, ?, ?);
108 // break; 108 // break;
109 109
110 default: 110 default:
111 tree.Scale = new Vector3(4, 4, 4); 111 tree.Scale *= new Vector3(8, 8, 8);
112 break; 112 break;
113 } 113 }
114 } 114 }
diff --git a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
index fac2dab..710230a 100644
--- a/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
+++ b/OpenSim/Region/CoreModules/World/WorldMap/WorldMapModule.cs
@@ -46,6 +46,7 @@ using OpenSim.Framework.Servers;
46using OpenSim.Framework.Servers.HttpServer; 46using OpenSim.Framework.Servers.HttpServer;
47using OpenSim.Region.Framework.Interfaces; 47using OpenSim.Region.Framework.Interfaces;
48using OpenSim.Region.Framework.Scenes; 48using OpenSim.Region.Framework.Scenes;
49using OpenSim.Region.CoreModules.World.Land;
49using Caps=OpenSim.Framework.Capabilities.Caps; 50using Caps=OpenSim.Framework.Capabilities.Caps;
50using OSDArray=OpenMetaverse.StructuredData.OSDArray; 51using OSDArray=OpenMetaverse.StructuredData.OSDArray;
51using OSDMap=OpenMetaverse.StructuredData.OSDMap; 52using OSDMap=OpenMetaverse.StructuredData.OSDMap;
@@ -68,6 +69,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
68 protected Scene m_scene; 69 protected Scene m_scene;
69 private List<MapBlockData> cachedMapBlocks = new List<MapBlockData>(); 70 private List<MapBlockData> cachedMapBlocks = new List<MapBlockData>();
70 private int cachedTime = 0; 71 private int cachedTime = 0;
72 private int blacklistTimeout = 10*60*1000; // 10 minutes
71 private byte[] myMapImageJPEG; 73 private byte[] myMapImageJPEG;
72 protected volatile bool m_Enabled = false; 74 protected volatile bool m_Enabled = false;
73 private Dictionary<UUID, MapRequestState> m_openRequests = new Dictionary<UUID, MapRequestState>(); 75 private Dictionary<UUID, MapRequestState> m_openRequests = new Dictionary<UUID, MapRequestState>();
@@ -85,6 +87,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
85 IConfig startupConfig = config.Configs["Startup"]; 87 IConfig startupConfig = config.Configs["Startup"];
86 if (startupConfig.GetString("WorldMapModule", "WorldMap") == "WorldMap") 88 if (startupConfig.GetString("WorldMapModule", "WorldMap") == "WorldMap")
87 m_Enabled = true; 89 m_Enabled = true;
90
91 blacklistTimeout = startupConfig.GetInt("BlacklistTimeout", 10*60) * 1000;
88 } 92 }
89 93
90 public virtual void AddRegion (Scene scene) 94 public virtual void AddRegion (Scene scene)
@@ -159,11 +163,17 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
159 m_scene.EventManager.OnClientClosed += ClientLoggedOut; 163 m_scene.EventManager.OnClientClosed += ClientLoggedOut;
160 m_scene.EventManager.OnMakeChildAgent += MakeChildAgent; 164 m_scene.EventManager.OnMakeChildAgent += MakeChildAgent;
161 m_scene.EventManager.OnMakeRootAgent += MakeRootAgent; 165 m_scene.EventManager.OnMakeRootAgent += MakeRootAgent;
166 m_scene.EventManager.OnRegionUp += OnRegionUp;
167
168 StartThread(new object());
162 } 169 }
163 170
164 // this has to be called with a lock on m_scene 171 // this has to be called with a lock on m_scene
165 protected virtual void RemoveHandlers() 172 protected virtual void RemoveHandlers()
166 { 173 {
174 StopThread();
175
176 m_scene.EventManager.OnRegionUp -= OnRegionUp;
167 m_scene.EventManager.OnMakeRootAgent -= MakeRootAgent; 177 m_scene.EventManager.OnMakeRootAgent -= MakeRootAgent;
168 m_scene.EventManager.OnMakeChildAgent -= MakeChildAgent; 178 m_scene.EventManager.OnMakeChildAgent -= MakeChildAgent;
169 m_scene.EventManager.OnClientClosed -= ClientLoggedOut; 179 m_scene.EventManager.OnClientClosed -= ClientLoggedOut;
@@ -279,7 +289,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
279 /// <returns></returns> 289 /// <returns></returns>
280 public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq) 290 public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq)
281 { 291 {
282 m_log.Debug("[WORLD MAP]: MapLayer Request in region: " + m_scene.RegionInfo.RegionName); 292 m_log.DebugFormat("[WORLD MAP]: MapLayer Request in region: {0}", m_scene.RegionInfo.RegionName);
283 LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse(); 293 LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse();
284 mapResponse.LayerData.Array.Add(GetOSDMapLayerResponse()); 294 mapResponse.LayerData.Array.Add(GetOSDMapLayerResponse());
285 return mapResponse; 295 return mapResponse;
@@ -321,8 +331,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
321 lock (m_rootAgents) 331 lock (m_rootAgents)
322 { 332 {
323 m_rootAgents.Remove(AgentId); 333 m_rootAgents.Remove(AgentId);
324 if (m_rootAgents.Count == 0)
325 StopThread();
326 } 334 }
327 } 335 }
328 #endregion 336 #endregion
@@ -362,6 +370,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
362 public virtual void HandleMapItemRequest(IClientAPI remoteClient, uint flags, 370 public virtual void HandleMapItemRequest(IClientAPI remoteClient, uint flags,
363 uint EstateID, bool godlike, uint itemtype, ulong regionhandle) 371 uint EstateID, bool godlike, uint itemtype, ulong regionhandle)
364 { 372 {
373// m_log.DebugFormat("[WORLD MAP]: Handle MapItem request {0} {1}", regionhandle, itemtype);
374
365 lock (m_rootAgents) 375 lock (m_rootAgents)
366 { 376 {
367 if (!m_rootAgents.Contains(remoteClient.AgentId)) 377 if (!m_rootAgents.Contains(remoteClient.AgentId))
@@ -370,7 +380,7 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
370 uint xstart = 0; 380 uint xstart = 0;
371 uint ystart = 0; 381 uint ystart = 0;
372 Utils.LongToUInts(m_scene.RegionInfo.RegionHandle, out xstart, out ystart); 382 Utils.LongToUInts(m_scene.RegionInfo.RegionHandle, out xstart, out ystart);
373 if (itemtype == 6) // we only sevice 6 right now (avatar green dots) 383 if (itemtype == 6) // Service 6 right now (MAP_ITEM_AGENTS_LOCATION; green dots)
374 { 384 {
375 if (regionhandle == 0 || regionhandle == m_scene.RegionInfo.RegionHandle) 385 if (regionhandle == 0 || regionhandle == m_scene.RegionInfo.RegionHandle)
376 { 386 {
@@ -414,14 +424,58 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
414 // Remote Map Item Request 424 // Remote Map Item Request
415 425
416 // ensures that the blockingqueue doesn't get borked if the GetAgents() timing changes. 426 // ensures that the blockingqueue doesn't get borked if the GetAgents() timing changes.
417 // Note that we only start up a remote mapItem Request thread if there's users who could 427 RequestMapItems("",remoteClient.AgentId,flags,EstateID,godlike,itemtype,regionhandle);
418 // be making requests 428 }
419 if (!threadrunning) 429 } else if (itemtype == 7) // Service 7 (MAP_ITEM_LAND_FOR_SALE)
430 {
431 if (regionhandle == 0 || regionhandle == m_scene.RegionInfo.RegionHandle)
432 {
433 // Parcels
434 ILandChannel landChannel = m_scene.LandChannel;
435 List<ILandObject> parcels = landChannel.AllParcels();
436
437 // Local Map Item Request
438 int tc = Environment.TickCount;
439 List<mapItemReply> mapitems = new List<mapItemReply>();
440 mapItemReply mapitem = new mapItemReply();
441 if ((parcels != null) && (parcels.Count >= 1))
420 { 442 {
421 m_log.Warn("[WORLD MAP]: Starting new remote request thread manually. This means that AvatarEnteringParcel never fired! This needs to be fixed! Don't Mantis this, as the developers can see it in this message"); 443 foreach (ILandObject parcel_interface in parcels)
422 StartThread(new object()); 444 {
445 // Play it safe
446 if (!(parcel_interface is LandObject))
447 continue;
448
449 LandObject land = (LandObject)parcel_interface;
450 LandData parcel = land.LandData;
451
452 // Show land for sale
453 if ((parcel.Flags & (uint)ParcelFlags.ForSale) == (uint)ParcelFlags.ForSale)
454 {
455 Vector3 min = parcel.AABBMin;
456 Vector3 max = parcel.AABBMax;
457 float x = (min.X+max.X)/2;
458 float y = (min.Y+max.Y)/2;
459
460 mapitem = new mapItemReply();
461 mapitem.x = (uint)(xstart + x);
462 mapitem.y = (uint)(ystart + y);
463 // mapitem.z = (uint)m_scene.GetGroundHeight(x,y);
464 mapitem.id = UUID.Zero;
465 mapitem.name = parcel.Name;
466 mapitem.Extra = parcel.Area;
467 mapitem.Extra2 = parcel.SalePrice;
468 mapitems.Add(mapitem);
469 }
470 }
423 } 471 }
472 remoteClient.SendMapItemReply(mapitems.ToArray(), itemtype, flags);
473 }
474 else
475 {
476 // Remote Map Item Request
424 477
478 // ensures that the blockingqueue doesn't get borked if the GetAgents() timing changes.
425 RequestMapItems("",remoteClient.AgentId,flags,EstateID,godlike,itemtype,regionhandle); 479 RequestMapItems("",remoteClient.AgentId,flags,EstateID,godlike,itemtype,regionhandle);
426 } 480 }
427 } 481 }
@@ -542,6 +596,28 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
542 } 596 }
543 av.ControllingClient.SendMapItemReply(returnitems.ToArray(), mrs.itemtype, mrs.flags); 597 av.ControllingClient.SendMapItemReply(returnitems.ToArray(), mrs.itemtype, mrs.flags);
544 } 598 }
599
600 // Service 7 (MAP_ITEM_LAND_FOR_SALE)
601 uint itemtype = 7;
602
603 if (response.ContainsKey(itemtype.ToString()))
604 {
605 List<mapItemReply> returnitems = new List<mapItemReply>();
606 OSDArray itemarray = (OSDArray)response[itemtype.ToString()];
607 for (int i = 0; i < itemarray.Count; i++)
608 {
609 OSDMap mapitem = (OSDMap)itemarray[i];
610 mapItemReply mi = new mapItemReply();
611 mi.x = (uint)mapitem["X"].AsInteger();
612 mi.y = (uint)mapitem["Y"].AsInteger();
613 mi.id = mapitem["ID"].AsUUID();
614 mi.Extra = mapitem["Extra"].AsInteger();
615 mi.Extra2 = mapitem["Extra2"].AsInteger();
616 mi.name = mapitem["Name"].AsString();
617 returnitems.Add(mi);
618 }
619 av.ControllingClient.SendMapItemReply(returnitems.ToArray(), itemtype, mrs.flags);
620 }
545 } 621 }
546 } 622 }
547 } 623 }
@@ -589,12 +665,23 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
589 private OSDMap RequestMapItemsAsync(UUID id, uint flags, 665 private OSDMap RequestMapItemsAsync(UUID id, uint flags,
590 uint EstateID, bool godlike, uint itemtype, ulong regionhandle) 666 uint EstateID, bool godlike, uint itemtype, ulong regionhandle)
591 { 667 {
668// m_log.DebugFormat("[WORLDMAP]: RequestMapItemsAsync; region handle: {0} {1}", regionhandle, itemtype);
669
592 string httpserver = ""; 670 string httpserver = "";
593 bool blacklisted = false; 671 bool blacklisted = false;
594 lock (m_blacklistedregions) 672 lock (m_blacklistedregions)
595 { 673 {
596 if (m_blacklistedregions.ContainsKey(regionhandle)) 674 if (m_blacklistedregions.ContainsKey(regionhandle))
597 blacklisted = true; 675 {
676 if (Environment.TickCount > (m_blacklistedregions[regionhandle] + blacklistTimeout))
677 {
678 m_log.DebugFormat("[WORLDMAP]: Unblock blacklisted region {0}", regionhandle);
679
680 m_blacklistedregions.Remove(regionhandle);
681 }
682 else
683 blacklisted = true;
684 }
598 } 685 }
599 686
600 if (blacklisted) 687 if (blacklisted)
@@ -636,7 +723,16 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
636 lock (m_blacklistedurls) 723 lock (m_blacklistedurls)
637 { 724 {
638 if (m_blacklistedurls.ContainsKey(httpserver)) 725 if (m_blacklistedurls.ContainsKey(httpserver))
639 blacklisted = true; 726 {
727 if (Environment.TickCount > (m_blacklistedurls[httpserver] + blacklistTimeout))
728 {
729 m_log.DebugFormat("[WORLDMAP]: Unblock blacklisted URL {0}", httpserver);
730
731 m_blacklistedurls.Remove(httpserver);
732 }
733 else
734 blacklisted = true;
735 }
640 } 736 }
641 737
642 // Can't find the http server 738 // Can't find the http server
@@ -682,7 +778,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
682 mapitemsrequest.ContentLength = buffer.Length; //Count bytes to send 778 mapitemsrequest.ContentLength = buffer.Length; //Count bytes to send
683 os = mapitemsrequest.GetRequestStream(); 779 os = mapitemsrequest.GetRequestStream();
684 os.Write(buffer, 0, buffer.Length); //Send it 780 os.Write(buffer, 0, buffer.Length); //Send it
685 os.Close();
686 //m_log.DebugFormat("[WORLD MAP]: Getting MapItems from {0}", httpserver); 781 //m_log.DebugFormat("[WORLD MAP]: Getting MapItems from {0}", httpserver);
687 } 782 }
688 catch (WebException ex) 783 catch (WebException ex)
@@ -705,6 +800,11 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
705 responseMap["connect"] = OSD.FromBoolean(false); 800 responseMap["connect"] = OSD.FromBoolean(false);
706 return responseMap; 801 return responseMap;
707 } 802 }
803 finally
804 {
805 if (os != null)
806 os.Close();
807 }
708 808
709 string response_mapItems_reply = null; 809 string response_mapItems_reply = null;
710 { // get the response 810 { // get the response
@@ -1060,6 +1160,8 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
1060 1160
1061 Utils.LongToUInts(m_scene.RegionInfo.RegionHandle,out xstart,out ystart); 1161 Utils.LongToUInts(m_scene.RegionInfo.RegionHandle,out xstart,out ystart);
1062 1162
1163 // Service 6 (MAP_ITEM_AGENTS_LOCATION; green dots)
1164
1063 OSDMap responsemap = new OSDMap(); 1165 OSDMap responsemap = new OSDMap();
1064 int tc = Environment.TickCount; 1166 int tc = Environment.TickCount;
1065 if (m_scene.GetRootAgentCount() == 0) 1167 if (m_scene.GetRootAgentCount() == 0)
@@ -1092,6 +1194,60 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
1092 }); 1194 });
1093 responsemap["6"] = responsearr; 1195 responsemap["6"] = responsearr;
1094 } 1196 }
1197
1198 // Service 7 (MAP_ITEM_LAND_FOR_SALE)
1199
1200 ILandChannel landChannel = m_scene.LandChannel;
1201 List<ILandObject> parcels = landChannel.AllParcels();
1202
1203 if ((parcels == null) || (parcels.Count == 0))
1204 {
1205 OSDMap responsemapdata = new OSDMap();
1206 responsemapdata["X"] = OSD.FromInteger((int)(xstart + 1));
1207 responsemapdata["Y"] = OSD.FromInteger((int)(ystart + 1));
1208 responsemapdata["ID"] = OSD.FromUUID(UUID.Zero);
1209 responsemapdata["Name"] = OSD.FromString("");
1210 responsemapdata["Extra"] = OSD.FromInteger(0);
1211 responsemapdata["Extra2"] = OSD.FromInteger(0);
1212 OSDArray responsearr = new OSDArray();
1213 responsearr.Add(responsemapdata);
1214
1215 responsemap["7"] = responsearr;
1216 }
1217 else
1218 {
1219 OSDArray responsearr = new OSDArray(m_scene.GetRootAgentCount());
1220 foreach (ILandObject parcel_interface in parcels)
1221 {
1222 // Play it safe
1223 if (!(parcel_interface is LandObject))
1224 continue;
1225
1226 LandObject land = (LandObject)parcel_interface;
1227 LandData parcel = land.LandData;
1228
1229 // Show land for sale
1230 if ((parcel.Flags & (uint)ParcelFlags.ForSale) == (uint)ParcelFlags.ForSale)
1231 {
1232 Vector3 min = parcel.AABBMin;
1233 Vector3 max = parcel.AABBMax;
1234 float x = (min.X+max.X)/2;
1235 float y = (min.Y+max.Y)/2;
1236
1237 OSDMap responsemapdata = new OSDMap();
1238 responsemapdata["X"] = OSD.FromInteger((int)(xstart + x));
1239 responsemapdata["Y"] = OSD.FromInteger((int)(ystart + y));
1240 // responsemapdata["Z"] = OSD.FromInteger((int)m_scene.GetGroundHeight(x,y));
1241 responsemapdata["ID"] = OSD.FromUUID(UUID.Zero);
1242 responsemapdata["Name"] = OSD.FromString(parcel.Name);
1243 responsemapdata["Extra"] = OSD.FromInteger(parcel.Area);
1244 responsemapdata["Extra2"] = OSD.FromInteger(parcel.SalePrice);
1245 responsearr.Add(responsemapdata);
1246 }
1247 }
1248 responsemap["7"] = responsearr;
1249 }
1250
1095 return responsemap; 1251 return responsemap;
1096 } 1252 }
1097 1253
@@ -1140,12 +1296,6 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
1140 1296
1141 private void MakeRootAgent(ScenePresence avatar) 1297 private void MakeRootAgent(ScenePresence avatar)
1142 { 1298 {
1143 // You may ask, why this is in a threadpool to start with..
1144 // The reason is so we don't cause the thread to freeze waiting
1145 // for the 1 second it costs to start a thread manually.
1146 if (!threadrunning)
1147 Util.FireAndForget(this.StartThread);
1148
1149 lock (m_rootAgents) 1299 lock (m_rootAgents)
1150 { 1300 {
1151 if (!m_rootAgents.Contains(avatar.UUID)) 1301 if (!m_rootAgents.Contains(avatar.UUID))
@@ -1160,8 +1310,30 @@ namespace OpenSim.Region.CoreModules.World.WorldMap
1160 lock (m_rootAgents) 1310 lock (m_rootAgents)
1161 { 1311 {
1162 m_rootAgents.Remove(avatar.UUID); 1312 m_rootAgents.Remove(avatar.UUID);
1163 if (m_rootAgents.Count == 0) 1313 }
1164 StopThread(); 1314 }
1315
1316 public void OnRegionUp(GridRegion otherRegion)
1317 {
1318 ulong regionhandle = otherRegion.RegionHandle;
1319 string httpserver = otherRegion.ServerURI + "MAP/MapItems/" + regionhandle.ToString();
1320
1321 lock (m_blacklistedregions)
1322 {
1323 if (!m_blacklistedregions.ContainsKey(regionhandle))
1324 m_blacklistedregions.Remove(regionhandle);
1325 }
1326
1327 lock (m_blacklistedurls)
1328 {
1329 if (m_blacklistedurls.ContainsKey(httpserver))
1330 m_blacklistedurls.Remove(httpserver);
1331 }
1332
1333 lock (m_cachedRegionMapItemsAddress)
1334 {
1335 if (!m_cachedRegionMapItemsAddress.ContainsKey(regionhandle))
1336 m_cachedRegionMapItemsAddress.Remove(regionhandle);
1165 } 1337 }
1166 } 1338 }
1167 1339