aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorMelanie2010-12-12 01:20:46 +0000
committerMelanie2010-12-12 01:20:46 +0000
commit8aa63093b118f257eff87c003e668249c34f5162 (patch)
treea5ea5448482d899729c29079ed0dab8394bb9be4 /OpenSim
parentFix border fence for physicals. Fix llRotLookAt() for Vehicles. (diff)
parentRevert "Another stab at mantis #5256" (diff)
downloadopensim-SC_OLD-8aa63093b118f257eff87c003e668249c34f5162.zip
opensim-SC_OLD-8aa63093b118f257eff87c003e668249c34f5162.tar.gz
opensim-SC_OLD-8aa63093b118f257eff87c003e668249c34f5162.tar.bz2
opensim-SC_OLD-8aa63093b118f257eff87c003e668249c34f5162.tar.xz
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs2
-rw-r--r--OpenSim/Region/Application/OpenSim.cs7
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs27
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs128
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs14
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs2
-rw-r--r--OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs23
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs3
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs64
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs23
-rw-r--r--OpenSim/Region/Physics/Meshing/Meshmerizer.cs2
-rw-r--r--OpenSim/Region/Physics/Meshing/SculptMesh.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs71
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs19
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs33
-rw-r--r--OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs2
-rw-r--r--OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs1
-rw-r--r--OpenSim/Services/GridService/HypergridLinker.cs109
-rw-r--r--OpenSim/Services/HypergridService/UserAgentService.cs2
-rw-r--r--OpenSim/Services/Interfaces/IUserAccountService.cs2
-rw-r--r--OpenSim/Services/LLLoginService/LLLoginService.cs5
23 files changed, 324 insertions, 221 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
index 3c58a7d..3343f60 100644
--- a/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
+++ b/OpenSim/Framework/Servers/HttpServer/BaseHttpServer.cs
@@ -1845,7 +1845,7 @@ namespace OpenSim.Framework.Servers.HttpServer
1845 /// property in StartHttp() for the HttpListener 1845 /// property in StartHttp() for the HttpListener
1846 public class HttpServerLogWriter : ILogWriter 1846 public class HttpServerLogWriter : ILogWriter
1847 { 1847 {
1848 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 1848// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
1849 1849
1850 public void Write(object source, LogPrio priority, string message) 1850 public void Write(object source, LogPrio priority, string message)
1851 { 1851 {
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index feaea16..300d8a6 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -265,10 +265,11 @@ namespace OpenSim
265 LoadOar); 265 LoadOar);
266 266
267 m_console.Commands.AddCommand("region", false, "save oar", 267 m_console.Commands.AddCommand("region", false, "save oar",
268 "save oar [-v|--version=<N>] [-p|--profile=<url>] [<OAR path>]", 268 //"save oar [-v|--version=<N>] [-p|--profile=<url>] [<OAR path>]",
269 "save oar [-p|--profile=<url>] [<OAR path>]",
269 "Save a region's data to an OAR archive.", 270 "Save a region's data to an OAR archive.",
270 "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine 271// "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine
271 + "-p|--profile=<url> adds the url of the profile service to the saved user information" + Environment.NewLine 272 "-p|--profile=<url> adds the url of the profile service to the saved user information" + Environment.NewLine
272 + "The OAR path must be a filesystem path." 273 + "The OAR path must be a filesystem path."
273 + " If this is not given then the oar is saved to region.oar in the current directory.", 274 + " If this is not given then the oar is saved to region.oar in the current directory.",
274 SaveOar); 275 SaveOar);
diff --git a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs
index a8da330..1f60e36 100644
--- a/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Assets/GetTextureModule.cs
@@ -336,7 +336,7 @@ namespace OpenSim.Region.CoreModules.Avatar.ObjectCaps
336 336
337 try 337 try
338 { 338 {
339 // Taking our jpeg2000 data, decoding it, then saving it to a byte array with regular jpeg data 339 // Taking our jpeg2000 data, decoding it, then saving it to a byte array with regular data
340 340
341 imgstream = new MemoryStream(); 341 imgstream = new MemoryStream();
342 342
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
index cab341d..5e5f6c0 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
@@ -156,7 +156,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
156 /// <param name="inventoryFolder">The inventory folder to save</param> 156 /// <param name="inventoryFolder">The inventory folder to save</param>
157 /// <param name="path">The path to which the folder should be saved</param> 157 /// <param name="path">The path to which the folder should be saved</param>
158 /// <param name="saveThisFolderItself">If true, save this folder itself. If false, only saves contents</param> 158 /// <param name="saveThisFolderItself">If true, save this folder itself. If false, only saves contents</param>
159 protected void SaveInvFolder(InventoryFolderBase inventoryFolder, string path, bool saveThisFolderItself, Dictionary<string, object> options, IUserAccountService userAccountService) 159 /// <param name="options"></param>
160 /// <param name="userAccountService"></param>
161 protected void SaveInvFolder(
162 InventoryFolderBase inventoryFolder, string path, bool saveThisFolderItself,
163 Dictionary<string, object> options, IUserAccountService userAccountService)
160 { 164 {
161 if (saveThisFolderItself) 165 if (saveThisFolderItself)
162 { 166 {
@@ -249,7 +253,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
249 253
250 // Write out control file. This has to be done first so that subsequent loaders will see this file first 254 // Write out control file. This has to be done first so that subsequent loaders will see this file first
251 // XXX: I know this is a weak way of doing it since external non-OAR aware tar executables will not do this 255 // XXX: I know this is a weak way of doing it since external non-OAR aware tar executables will not do this
252 m_archiveWriter.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, Create0p1ControlFile()); 256 // not sure how to fix this though, short of going with a completely different file format.
257 m_archiveWriter.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, CreateControlFile(options));
253 m_log.InfoFormat("[INVENTORY ARCHIVER]: Added control file to archive."); 258 m_log.InfoFormat("[INVENTORY ARCHIVER]: Added control file to archive.");
254 259
255 if (inventoryFolder != null) 260 if (inventoryFolder != null)
@@ -372,12 +377,24 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
372 } 377 }
373 378
374 /// <summary> 379 /// <summary>
375 /// Create the control file for a 0.1 version archive 380 /// Create the control file for the archive
376 /// </summary> 381 /// </summary>
382 /// <param name="options"></param>
377 /// <returns></returns> 383 /// <returns></returns>
378 public static string Create0p1ControlFile() 384 public static string CreateControlFile(Dictionary<string, object> options)
379 { 385 {
380 int majorVersion = 0, minorVersion = 1; 386 int majorVersion, minorVersion;
387
388 if (options.ContainsKey("profile"))
389 {
390 majorVersion = 1;
391 minorVersion = 0;
392 }
393 else
394 {
395 majorVersion = 0;
396 minorVersion = 1;
397 }
381 398
382 m_log.InfoFormat("[INVENTORY ARCHIVER]: Creating version {0}.{1} IAR", majorVersion, minorVersion); 399 m_log.InfoFormat("[INVENTORY ARCHIVER]: Creating version {0}.{1} IAR", majorVersion, minorVersion);
383 400
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
index b33c2b1..1e18095 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
55 /// <value> 55 /// <value>
56 /// Enable or disable checking whether the iar user is actually logged in 56 /// Enable or disable checking whether the iar user is actually logged in
57 /// </value> 57 /// </value>
58 public bool DisablePresenceChecks { get; set; } 58// public bool DisablePresenceChecks { get; set; }
59 59
60 public event InventoryArchiveSaved OnInventoryArchiveSaved; 60 public event InventoryArchiveSaved OnInventoryArchiveSaved;
61 61
@@ -95,10 +95,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
95 95
96 public InventoryArchiverModule() {} 96 public InventoryArchiverModule() {}
97 97
98 public InventoryArchiverModule(bool disablePresenceChecks) 98// public InventoryArchiverModule(bool disablePresenceChecks)
99 { 99// {
100 DisablePresenceChecks = disablePresenceChecks; 100// DisablePresenceChecks = disablePresenceChecks;
101 } 101// }
102 102
103 public void Initialise(Scene scene, IConfigSource source) 103 public void Initialise(Scene scene, IConfigSource source)
104 { 104 {
@@ -172,8 +172,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
172 172
173 if (userInfo != null) 173 if (userInfo != null)
174 { 174 {
175 if (CheckPresence(userInfo.PrincipalID)) 175// if (CheckPresence(userInfo.PrincipalID))
176 { 176// {
177 try 177 try
178 { 178 {
179 new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, saveStream).Execute(options, UserAccountService); 179 new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, saveStream).Execute(options, UserAccountService);
@@ -189,13 +189,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
189 } 189 }
190 190
191 return true; 191 return true;
192 } 192// }
193 else 193// else
194 { 194// {
195 m_log.ErrorFormat( 195// m_log.ErrorFormat(
196 "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator", 196// "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator",
197 userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID); 197// userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID);
198 } 198// }
199 } 199 }
200 } 200 }
201 201
@@ -212,8 +212,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
212 212
213 if (userInfo != null) 213 if (userInfo != null)
214 { 214 {
215 if (CheckPresence(userInfo.PrincipalID)) 215// if (CheckPresence(userInfo.PrincipalID))
216 { 216// {
217 try 217 try
218 { 218 {
219 new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, savePath).Execute(options, UserAccountService); 219 new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, savePath).Execute(options, UserAccountService);
@@ -229,13 +229,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
229 } 229 }
230 230
231 return true; 231 return true;
232 } 232// }
233 else 233// else
234 { 234// {
235 m_log.ErrorFormat( 235// m_log.ErrorFormat(
236 "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator", 236// "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator",
237 userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID); 237// userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID);
238 } 238// }
239 } 239 }
240 } 240 }
241 241
@@ -257,9 +257,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
257 257
258 if (userInfo != null) 258 if (userInfo != null)
259 { 259 {
260 if (CheckPresence(userInfo.PrincipalID)) 260// if (CheckPresence(userInfo.PrincipalID))
261 { 261// {
262
263 InventoryArchiveReadRequest request; 262 InventoryArchiveReadRequest request;
264 bool merge = (options.ContainsKey("merge") ? (bool)options["merge"] : false); 263 bool merge = (options.ContainsKey("merge") ? (bool)options["merge"] : false);
265 264
@@ -280,13 +279,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
280 UpdateClientWithLoadedNodes(userInfo, request.Execute()); 279 UpdateClientWithLoadedNodes(userInfo, request.Execute());
281 280
282 return true; 281 return true;
283 } 282// }
284 else 283// else
285 { 284// {
286 m_log.ErrorFormat( 285// m_log.ErrorFormat(
287 "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator", 286// "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator",
288 userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID); 287// userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID);
289 } 288// }
290 } 289 }
291 else 290 else
292 m_log.ErrorFormat("[INVENTORY ARCHIVER]: User {0} {1} not found", 291 m_log.ErrorFormat("[INVENTORY ARCHIVER]: User {0} {1} not found",
@@ -306,8 +305,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
306 305
307 if (userInfo != null) 306 if (userInfo != null)
308 { 307 {
309 if (CheckPresence(userInfo.PrincipalID)) 308// if (CheckPresence(userInfo.PrincipalID))
310 { 309// {
311 InventoryArchiveReadRequest request; 310 InventoryArchiveReadRequest request;
312 bool merge = (options.ContainsKey("merge") ? (bool)options["merge"] : false); 311 bool merge = (options.ContainsKey("merge") ? (bool)options["merge"] : false);
313 312
@@ -328,13 +327,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
328 UpdateClientWithLoadedNodes(userInfo, request.Execute()); 327 UpdateClientWithLoadedNodes(userInfo, request.Execute());
329 328
330 return true; 329 return true;
331 } 330// }
332 else 331// else
333 { 332// {
334 m_log.ErrorFormat( 333// m_log.ErrorFormat(
335 "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator", 334// "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator",
336 userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID); 335// userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID);
337 } 336// }
338 } 337 }
339 } 338 }
340 339
@@ -529,28 +528,27 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
529 } 528 }
530 } 529 }
531 530
532 /// <summary> 531// /// <summary>
533 /// Check if the given user is present in any of the scenes. 532// /// Check if the given user is present in any of the scenes.
534 /// </summary> 533// /// </summary>
535 /// <param name="userId">The user to check</param> 534// /// <param name="userId">The user to check</param>
536 /// <returns>true if the user is in any of the scenes, false otherwise</returns> 535// /// <returns>true if the user is in any of the scenes, false otherwise</returns>
537 protected bool CheckPresence(UUID userId) 536// protected bool CheckPresence(UUID userId)
538 { 537// {
539 if (DisablePresenceChecks) 538// if (DisablePresenceChecks)
540 return true; 539// return true;
541 540//
542 foreach (Scene scene in m_scenes.Values) 541// foreach (Scene scene in m_scenes.Values)
543 { 542// {
544 ScenePresence p; 543// ScenePresence p;
545 if ((p = scene.GetScenePresence(userId)) != null) 544// if ((p = scene.GetScenePresence(userId)) != null)
546 { 545// {
547 p.ControllingClient.SendAgentAlertMessage("Inventory operation has been started", false); 546// p.ControllingClient.SendAgentAlertMessage("Inventory operation has been started", false);
548 return true; 547// return true;
549 } 548// }
550 } 549// }
551 550//
552 return false; 551// return false;
553 } 552// }
554
555 } 553 }
556} 554}
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
index 2747e15..76d0b85 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
@@ -120,7 +120,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
120 TestHelper.InMethod(); 120 TestHelper.InMethod();
121// log4net.Config.XmlConfigurator.Configure(); 121// log4net.Config.XmlConfigurator.Configure();
122 122
123 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 123 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
124 124
125 Scene scene = SceneSetupHelpers.SetupScene("Inventory"); 125 Scene scene = SceneSetupHelpers.SetupScene("Inventory");
126 SceneSetupHelpers.SetupSceneModules(scene, archiverModule); 126 SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
@@ -238,7 +238,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
238 TestHelper.InMethod(); 238 TestHelper.InMethod();
239// log4net.Config.XmlConfigurator.Configure(); 239// log4net.Config.XmlConfigurator.Configure();
240 240
241 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 241 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
242 242
243 Scene scene = SceneSetupHelpers.SetupScene("Inventory"); 243 Scene scene = SceneSetupHelpers.SetupScene("Inventory");
244 SceneSetupHelpers.SetupSceneModules(scene, archiverModule); 244 SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
@@ -355,7 +355,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
355// log4net.Config.XmlConfigurator.Configure(); 355// log4net.Config.XmlConfigurator.Configure();
356 356
357 SerialiserModule serialiserModule = new SerialiserModule(); 357 SerialiserModule serialiserModule = new SerialiserModule();
358 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 358 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
359 Scene scene = SceneSetupHelpers.SetupScene("inventory"); 359 Scene scene = SceneSetupHelpers.SetupScene("inventory");
360 SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); 360 SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
361 361
@@ -382,7 +382,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
382 //log4net.Config.XmlConfigurator.Configure(); 382 //log4net.Config.XmlConfigurator.Configure();
383 383
384 SerialiserModule serialiserModule = new SerialiserModule(); 384 SerialiserModule serialiserModule = new SerialiserModule();
385 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 385 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
386 386
387 // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene 387 // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
388 Scene scene = SceneSetupHelpers.SetupScene("inventory"); 388 Scene scene = SceneSetupHelpers.SetupScene("inventory");
@@ -443,7 +443,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
443 string humanEscapedItemName = @"You & you are a mean\/man\/"; 443 string humanEscapedItemName = @"You & you are a mean\/man\/";
444 string userPassword = "meowfood"; 444 string userPassword = "meowfood";
445 445
446 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 446 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
447 447
448 Scene scene = SceneSetupHelpers.SetupScene("Inventory"); 448 Scene scene = SceneSetupHelpers.SetupScene("Inventory");
449 SceneSetupHelpers.SetupSceneModules(scene, archiverModule); 449 SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
@@ -558,7 +558,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
558 558
559 MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); 559 MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
560 SerialiserModule serialiserModule = new SerialiserModule(); 560 SerialiserModule serialiserModule = new SerialiserModule();
561 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 561 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
562 562
563 // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene 563 // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
564 Scene scene = SceneSetupHelpers.SetupScene("inventory"); 564 Scene scene = SceneSetupHelpers.SetupScene("inventory");
@@ -619,7 +619,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
619 619
620 // MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); 620 // MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
621 // SerialiserModule serialiserModule = new SerialiserModule(); 621 // SerialiserModule serialiserModule = new SerialiserModule();
622 // InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 622 // InventoryArchiverModule archiverModule = new InventoryArchiverModule();
623 623
624 // // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene 624 // // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
625 // Scene scene = SceneSetupHelpers.SetupScene(); 625 // Scene scene = SceneSetupHelpers.SetupScene();
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index b5da625..0c59ba1 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1326,7 +1326,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1326 #region Agent Arrived 1326 #region Agent Arrived
1327 public void AgentArrivedAtDestination(UUID id) 1327 public void AgentArrivedAtDestination(UUID id)
1328 { 1328 {
1329 //m_log.Debug(" >>> ReleaseAgent called <<< "); 1329 m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Agent {0} released", id);
1330 ResetFromTransit(id); 1330 ResetFromTransit(id);
1331 } 1331 }
1332 1332
diff --git a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
index 3291be4..7316e5b 100644
--- a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
@@ -165,7 +165,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
165 int width = 256; 165 int width = 256;
166 int height = 256; 166 int height = 256;
167 int alpha = 255; // 0 is transparent 167 int alpha = 255; // 0 is transparent
168 Color bgColour = Color.White; // Default background color 168 Color bgColor = Color.White; // Default background color
169 char altDataDelim = ';'; 169 char altDataDelim = ';';
170 170
171 char[] paramDelimiter = { ',' }; 171 char[] paramDelimiter = { ',' };
@@ -253,15 +253,16 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
253 alpha = 256; 253 alpha = 256;
254 } 254 }
255 break; 255 break;
256 case "bgcolor":
256 case "bgcolour": 257 case "bgcolour":
257 int hex = 0; 258 int hex = 0;
258 if (Int32.TryParse(value, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex)) 259 if (Int32.TryParse(value, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex))
259 { 260 {
260 bgColour = Color.FromArgb(hex); 261 bgColor = Color.FromArgb(hex);
261 } 262 }
262 else 263 else
263 { 264 {
264 bgColour = Color.FromName(value); 265 bgColor = Color.FromName(value);
265 } 266 }
266 break; 267 break;
267 case "altdatadelim": 268 case "altdatadelim":
@@ -315,7 +316,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
315 // background color in their scripts, only do when fully opaque 316 // background color in their scripts, only do when fully opaque
316 if (alpha >= 255) 317 if (alpha >= 255)
317 { 318 {
318 graph.FillRectangle(new SolidBrush(bgColour), 0, 0, width, height); 319 graph.FillRectangle(new SolidBrush(bgColor), 0, 0, width, height);
319 } 320 }
320 321
321 for (int w = 0; w < bitmap.Width; w++) 322 for (int w = 0; w < bitmap.Width; w++)
@@ -616,25 +617,25 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
616 } 617 }
617 } 618 }
618 } 619 }
619 else if (nextLine.StartsWith("PenColour")) 620 else if (nextLine.StartsWith("PenColour") || nextLine.StartsWith("PenColor"))
620 { 621 {
621 nextLine = nextLine.Remove(0, 9); 622 nextLine = nextLine.Remove(0, 9);
622 nextLine = nextLine.Trim(); 623 nextLine = nextLine.Trim();
623 int hex = 0; 624 int hex = 0;
624 625
625 Color newColour; 626 Color newColor;
626 if (Int32.TryParse(nextLine, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex)) 627 if (Int32.TryParse(nextLine, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex))
627 { 628 {
628 newColour = Color.FromArgb(hex); 629 newColor = Color.FromArgb(hex);
629 } 630 }
630 else 631 else
631 { 632 {
632 // this doesn't fail, it just returns black if nothing is found 633 // this doesn't fail, it just returns black if nothing is found
633 newColour = Color.FromName(nextLine); 634 newColor = Color.FromName(nextLine);
634 } 635 }
635 636
636 myBrush.Color = newColour; 637 myBrush.Color = newColor;
637 drawPen.Color = newColour; 638 drawPen.Color = newColor;
638 } 639 }
639 } 640 }
640 } 641 }
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs
index f8a599a..9ec4ebe 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs
@@ -136,14 +136,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver
136 ms.Close(); 136 ms.Close();
137 137
138 m_log.InfoFormat("[ARCHIVER]: Added terrain information to archive."); 138 m_log.InfoFormat("[ARCHIVER]: Added terrain information to archive.");
139
140 139
141 // Write out scene object metadata 140 // Write out scene object metadata
142 foreach (SceneObjectGroup sceneObject in m_sceneObjects) 141 foreach (SceneObjectGroup sceneObject in m_sceneObjects)
143 { 142 {
144 //m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType()); 143 //m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType());
145 144
146 string serializedObject = m_serialiser.SerializeGroupToXml2(sceneObject, m_options); 145 string serializedObject = m_serialiser.SerializeGroupToXml2(sceneObject, m_options);
147 m_archiveWriter.WriteFile(ArchiveHelpers.CreateObjectPath(sceneObject), serializedObject); 146 m_archiveWriter.WriteFile(ArchiveHelpers.CreateObjectPath(sceneObject), serializedObject);
148 } 147 }
149 148
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
index 0699407..f2d487e 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
@@ -58,7 +58,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
58 /// <summary> 58 /// <summary>
59 /// The maximum major version of OAR that we can write. 59 /// The maximum major version of OAR that we can write.
60 /// </summary> 60 /// </summary>
61 public static int MAX_MAJOR_VERSION = 1; 61 public static int MAX_MAJOR_VERSION = 0;
62 62
63 protected Scene m_scene; 63 protected Scene m_scene;
64 protected Stream m_saveStream; 64 protected Stream m_saveStream;
@@ -206,37 +206,37 @@ namespace OpenSim.Region.CoreModules.World.Archiver
206 /// <returns></returns> 206 /// <returns></returns>
207 public static string CreateControlFile(Dictionary<string, object> options) 207 public static string CreateControlFile(Dictionary<string, object> options)
208 { 208 {
209 int majorVersion = MAX_MAJOR_VERSION, minorVersion = 0; 209 int majorVersion = MAX_MAJOR_VERSION, minorVersion = 5;
210 210//
211 if (options.ContainsKey("version")) 211// if (options.ContainsKey("version"))
212 { 212// {
213 string[] parts = options["version"].ToString().Split('.'); 213// string[] parts = options["version"].ToString().Split('.');
214 if (parts.Length >= 1) 214// if (parts.Length >= 1)
215 { 215// {
216 majorVersion = Int32.Parse(parts[0]); 216// majorVersion = Int32.Parse(parts[0]);
217 217//
218 if (parts.Length >= 2) 218// if (parts.Length >= 2)
219 minorVersion = Int32.Parse(parts[1]); 219// minorVersion = Int32.Parse(parts[1]);
220 } 220// }
221 } 221// }
222 222//
223 if (majorVersion < MIN_MAJOR_VERSION || majorVersion > MAX_MAJOR_VERSION) 223// if (majorVersion < MIN_MAJOR_VERSION || majorVersion > MAX_MAJOR_VERSION)
224 { 224// {
225 throw new Exception( 225// throw new Exception(
226 string.Format( 226// string.Format(
227 "OAR version number for save must be between {0} and {1}", 227// "OAR version number for save must be between {0} and {1}",
228 MIN_MAJOR_VERSION, MAX_MAJOR_VERSION)); 228// MIN_MAJOR_VERSION, MAX_MAJOR_VERSION));
229 } 229// }
230 else if (majorVersion == MAX_MAJOR_VERSION) 230// else if (majorVersion == MAX_MAJOR_VERSION)
231 { 231// {
232 // Force 1.0 232// // Force 1.0
233 minorVersion = 0; 233// minorVersion = 0;
234 } 234// }
235 else if (majorVersion == MIN_MAJOR_VERSION) 235// else if (majorVersion == MIN_MAJOR_VERSION)
236 { 236// {
237 // Force 0.4 237// // Force 0.4
238 minorVersion = 4; 238// minorVersion = 4;
239 } 239// }
240 240
241 m_log.InfoFormat("[ARCHIVER]: Creating version {0}.{1} OAR", majorVersion, minorVersion); 241 m_log.InfoFormat("[ARCHIVER]: Creating version {0}.{1} OAR", majorVersion, minorVersion);
242 //if (majorVersion == 1) 242 //if (majorVersion == 1)
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
index 2d7244e..9277c59 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
@@ -125,7 +125,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
125 Dictionary<string, object> options = new Dictionary<string, object>(); 125 Dictionary<string, object> options = new Dictionary<string, object>();
126 126
127 OptionSet ops = new OptionSet(); 127 OptionSet ops = new OptionSet();
128 ops.Add("v|version=", delegate(string v) { options["version"] = v; }); 128// ops.Add("v|version=", delegate(string v) { options["version"] = v; });
129 ops.Add("p|profile=", delegate(string v) { options["profile"] = v; }); 129 ops.Add("p|profile=", delegate(string v) { options["profile"] = v; });
130 130
131 List<string> mainParams = ops.Parse(cmdparams); 131 List<string> mainParams = ops.Parse(cmdparams);
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index ecc7f40..7eebb99 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -223,8 +223,27 @@ namespace OpenSim.Region.Framework.Scenes
223 if (sp.IsChildAgent) 223 if (sp.IsChildAgent)
224 return; 224 return;
225 225
226 coarseLocations.Add(sp.AbsolutePosition); 226 if (sp.ParentID != 0)
227 avatarUUIDs.Add(sp.UUID); 227 {
228 // sitting avatar
229 SceneObjectPart sop = m_parentScene.GetSceneObjectPart(sp.ParentID);
230 if (sop != null)
231 {
232 coarseLocations.Add(sop.AbsolutePosition + sp.OffsetPosition);
233 avatarUUIDs.Add(sp.UUID);
234 }
235 else
236 {
237 // we can't find the parent.. ! arg!
238 coarseLocations.Add(sp.AbsolutePosition);
239 avatarUUIDs.Add(sp.UUID);
240 }
241 }
242 else
243 {
244 coarseLocations.Add(sp.AbsolutePosition);
245 avatarUUIDs.Add(sp.UUID);
246 }
228 } 247 }
229 } 248 }
230 249
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 3386e72..211a0a7 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -311,7 +311,7 @@ namespace OpenSim.Region.Physics.Meshing
311 OSD decodedMeshOsd = new OSD(); 311 OSD decodedMeshOsd = new OSD();
312 byte[] meshBytes = new byte[physSize]; 312 byte[] meshBytes = new byte[physSize];
313 System.Buffer.BlockCopy(primShape.SculptData, physOffset, meshBytes, 0, physSize); 313 System.Buffer.BlockCopy(primShape.SculptData, physOffset, meshBytes, 0, physSize);
314 byte[] decompressed = new byte[physSize * 5]; 314// byte[] decompressed = new byte[physSize * 5];
315 try 315 try
316 { 316 {
317 using (MemoryStream inMs = new MemoryStream(meshBytes)) 317 using (MemoryStream inMs = new MemoryStream(meshBytes))
diff --git a/OpenSim/Region/Physics/Meshing/SculptMesh.cs b/OpenSim/Region/Physics/Meshing/SculptMesh.cs
index e58eb89..4a7f3ad 100644
--- a/OpenSim/Region/Physics/Meshing/SculptMesh.cs
+++ b/OpenSim/Region/Physics/Meshing/SculptMesh.cs
@@ -375,7 +375,7 @@ namespace PrimMesher
375 375
376 int coordsDown = rows.Count; 376 int coordsDown = rows.Count;
377 int coordsAcross = rows[0].Count; 377 int coordsAcross = rows[0].Count;
378 int lastColumn = coordsAcross - 1; 378// int lastColumn = coordsAcross - 1;
379 379
380 float widthUnit = 1.0f / (coordsAcross - 1); 380 float widthUnit = 1.0f / (coordsAcross - 1);
381 float heightUnit = 1.0f / (coordsDown - 1); 381 float heightUnit = 1.0f / (coordsDown - 1);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index eba6e75..145c058 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -345,6 +345,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
345 } 345 }
346 } 346 }
347 347
348 internal void OSSLDeprecated(string function, string replacement)
349 {
350 OSSLShoutError(string.Format("Use of function {0} is deprecated. Use {1} instead.", function, replacement));
351 }
352
348 protected void ScriptSleep(int delay) 353 protected void ScriptSleep(int delay)
349 { 354 {
350 delay = (int)((float)delay * m_ScriptDelayFactor); 355 delay = (int)((float)delay * m_ScriptDelayFactor);
@@ -356,13 +361,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
356 // 361 //
357 // OpenSim functions 362 // OpenSim functions
358 // 363 //
364 public LSL_Integer osSetTerrainHeight(int x, int y, double val)
365 {
366 CheckThreatLevel(ThreatLevel.High, "osSetTerrainHeight");
367 return SetTerrainHeight(x, y, val);
368 }
359 public LSL_Integer osTerrainSetHeight(int x, int y, double val) 369 public LSL_Integer osTerrainSetHeight(int x, int y, double val)
360 { 370 {
361 CheckThreatLevel(ThreatLevel.High, "osTerrainSetHeight"); 371 CheckThreatLevel(ThreatLevel.High, "osTerrainSetHeight");
362 372 OSSLDeprecated("osTerrainSetHeight", "osSetTerrainHeight");
373 return SetTerrainHeight(x, y, val);
374 }
375 private LSL_Integer SetTerrainHeight(int x, int y, double val)
376 {
363 m_host.AddScriptLPS(1); 377 m_host.AddScriptLPS(1);
364 if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0) 378 if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0)
365 OSSLError("osTerrainSetHeight: Coordinate out of bounds"); 379 OSSLError("osSetTerrainHeight: Coordinate out of bounds");
366 380
367 if (World.Permissions.CanTerraformLand(m_host.OwnerID, new Vector3(x, y, 0))) 381 if (World.Permissions.CanTerraformLand(m_host.OwnerID, new Vector3(x, y, 0)))
368 { 382 {
@@ -375,13 +389,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
375 } 389 }
376 } 390 }
377 391
392 public LSL_Float osGetTerrainHeight(int x, int y)
393 {
394 CheckThreatLevel(ThreatLevel.None, "osGetTerrainHeight");
395 return GetTerrainHeight(x, y);
396 }
378 public LSL_Float osTerrainGetHeight(int x, int y) 397 public LSL_Float osTerrainGetHeight(int x, int y)
379 { 398 {
380 CheckThreatLevel(ThreatLevel.None, "osTerrainGetHeight"); 399 CheckThreatLevel(ThreatLevel.None, "osTerrainGetHeight");
381 400 OSSLDeprecated("osTerrainGetHeight", "osGetTerrainHeight");
401 return GetTerrainHeight(x, y);
402 }
403 private LSL_Float GetTerrainHeight(int x, int y)
404 {
382 m_host.AddScriptLPS(1); 405 m_host.AddScriptLPS(1);
383 if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0) 406 if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0)
384 OSSLError("osTerrainGetHeight: Coordinate out of bounds"); 407 OSSLError("osGetTerrainHeight: Coordinate out of bounds");
385 408
386 return World.Heightmap[x, y]; 409 return World.Heightmap[x, y];
387 } 410 }
@@ -1008,9 +1031,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1008 return drawList; 1031 return drawList;
1009 } 1032 }
1010 1033
1034 public string osSetPenColor(string drawList, string color)
1035 {
1036 CheckThreatLevel(ThreatLevel.None, "osSetPenColor");
1037
1038 m_host.AddScriptLPS(1);
1039 drawList += "PenColor " + color + "; ";
1040 return drawList;
1041 }
1042 // Deprecated
1011 public string osSetPenColour(string drawList, string colour) 1043 public string osSetPenColour(string drawList, string colour)
1012 { 1044 {
1013 CheckThreatLevel(ThreatLevel.None, "osSetPenColour"); 1045 CheckThreatLevel(ThreatLevel.None, "osSetPenColour");
1046 OSSLDeprecated("osSetPenColour", "osSetPenColor");
1014 1047
1015 m_host.AddScriptLPS(1); 1048 m_host.AddScriptLPS(1);
1016 drawList += "PenColour " + colour + "; "; 1049 drawList += "PenColour " + colour + "; ";
@@ -1019,7 +1052,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1019 1052
1020 public string osSetPenCap(string drawList, string direction, string type) 1053 public string osSetPenCap(string drawList, string direction, string type)
1021 { 1054 {
1022 CheckThreatLevel(ThreatLevel.None, "osSetPenColour"); 1055 CheckThreatLevel(ThreatLevel.None, "osSetPenCap");
1023 1056
1024 m_host.AddScriptLPS(1); 1057 m_host.AddScriptLPS(1);
1025 drawList += "PenCap " + direction + "," + type + "; "; 1058 drawList += "PenCap " + direction + "," + type + "; ";
@@ -1164,6 +1197,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1164 public double osSunGetParam(string param) 1197 public double osSunGetParam(string param)
1165 { 1198 {
1166 CheckThreatLevel(ThreatLevel.None, "osSunGetParam"); 1199 CheckThreatLevel(ThreatLevel.None, "osSunGetParam");
1200 OSSLDeprecated("osSunGetParam", "osGetSunParam");
1201 return GetSunParam(param);
1202 }
1203 public double osGetSunParam(string param)
1204 {
1205 CheckThreatLevel(ThreatLevel.None, "osGetSunParam");
1206 return GetSunParam(param);
1207 }
1208 private double GetSunParam(string param)
1209 {
1167 m_host.AddScriptLPS(1); 1210 m_host.AddScriptLPS(1);
1168 1211
1169 double value = 0.0; 1212 double value = 0.0;
@@ -1180,6 +1223,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1180 public void osSunSetParam(string param, double value) 1223 public void osSunSetParam(string param, double value)
1181 { 1224 {
1182 CheckThreatLevel(ThreatLevel.None, "osSunSetParam"); 1225 CheckThreatLevel(ThreatLevel.None, "osSunSetParam");
1226 OSSLDeprecated("osSunSetParam", "osSetSunParam");
1227 SetSunParam(param, value);
1228 }
1229 public void osSetSunParam(string param, double value)
1230 {
1231 CheckThreatLevel(ThreatLevel.None, "osSetSunParam");
1232 SetSunParam(param, value);
1233 }
1234 private void SetSunParam(string param, double value)
1235 {
1183 m_host.AddScriptLPS(1); 1236 m_host.AddScriptLPS(1);
1184 1237
1185 ISunModule module = World.RequestModuleInterface<ISunModule>(); 1238 ISunModule module = World.RequestModuleInterface<ISunModule>();
@@ -1205,9 +1258,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1205 return String.Empty; 1258 return String.Empty;
1206 } 1259 }
1207 1260
1208 public void osWindParamSet(string plugin, string param, float value) 1261 public void osSetWindParam(string plugin, string param, float value)
1209 { 1262 {
1210 CheckThreatLevel(ThreatLevel.VeryLow, "osWindParamSet"); 1263 CheckThreatLevel(ThreatLevel.VeryLow, "osSetWindParam");
1211 m_host.AddScriptLPS(1); 1264 m_host.AddScriptLPS(1);
1212 1265
1213 IWindModule module = World.RequestModuleInterface<IWindModule>(); 1266 IWindModule module = World.RequestModuleInterface<IWindModule>();
@@ -1221,9 +1274,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1221 } 1274 }
1222 } 1275 }
1223 1276
1224 public float osWindParamGet(string plugin, string param) 1277 public float osGetWindParam(string plugin, string param)
1225 { 1278 {
1226 CheckThreatLevel(ThreatLevel.VeryLow, "osWindParamGet"); 1279 CheckThreatLevel(ThreatLevel.VeryLow, "osGetWindParam");
1227 m_host.AddScriptLPS(1); 1280 m_host.AddScriptLPS(1);
1228 1281
1229 IWindModule module = World.RequestModuleInterface<IWindModule>(); 1282 IWindModule module = World.RequestModuleInterface<IWindModule>();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 961987d..064df35 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -67,8 +67,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
67 string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams, 67 string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams,
68 bool blend, int disp, int timer, int alpha, int face); 68 bool blend, int disp, int timer, int alpha, int face);
69 69
70 LSL_Float osTerrainGetHeight(int x, int y); 70 LSL_Float osGetTerrainHeight(int x, int y);
71 LSL_Integer osTerrainSetHeight(int x, int y, double val); 71 LSL_Float osTerrainGetHeight(int x, int y); // Deprecated
72 LSL_Integer osSetTerrainHeight(int x, int y, double val);
73 LSL_Integer osTerrainSetHeight(int x, int y, double val); //Deprecated
72 void osTerrainFlush(); 74 void osTerrainFlush();
73 75
74 int osRegionRestart(double seconds); 76 int osRegionRestart(double seconds);
@@ -107,7 +109,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
107 string osSetFontName(string drawList, string fontName); 109 string osSetFontName(string drawList, string fontName);
108 string osSetFontSize(string drawList, int fontSize); 110 string osSetFontSize(string drawList, int fontSize);
109 string osSetPenSize(string drawList, int penSize); 111 string osSetPenSize(string drawList, int penSize);
110 string osSetPenColour(string drawList, string colour); 112 string osSetPenColor(string drawList, string color);
113 string osSetPenColour(string drawList, string colour); // Deprecated
111 string osSetPenCap(string drawList, string direction, string type); 114 string osSetPenCap(string drawList, string direction, string type);
112 string osDrawImage(string drawList, int width, int height, string imageUrl); 115 string osDrawImage(string drawList, int width, int height, string imageUrl);
113 vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize); 116 vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize);
@@ -119,13 +122,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
119 void osSetRegionSunSettings(bool useEstateSun, bool sunFixed, double sunHour); 122 void osSetRegionSunSettings(bool useEstateSun, bool sunFixed, double sunHour);
120 void osSetEstateSunSettings(bool sunFixed, double sunHour); 123 void osSetEstateSunSettings(bool sunFixed, double sunHour);
121 double osGetCurrentSunHour(); 124 double osGetCurrentSunHour();
122 double osSunGetParam(string param); 125 double osGetSunParam(string param);
123 void osSunSetParam(string param, double value); 126 double osSunGetParam(string param); // Deprecated
127 void osSetSunParam(string param, double value);
128 void osSunSetParam(string param, double value); // Deprecated
124 129
125 // Wind Module Functions 130 // Wind Module Functions
126 string osWindActiveModelPluginName(); 131 string osWindActiveModelPluginName();
127 void osWindParamSet(string plugin, string param, float value); 132 void osSetWindParam(string plugin, string param, float value);
128 float osWindParamGet(string plugin, string param); 133 float osGetWindParam(string plugin, string param);
129 134
130 // Parcel commands 135 // Parcel commands
131 void osParcelJoin(vector pos1, vector pos2); 136 void osParcelJoin(vector pos1, vector pos2);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index f3142e6..70d489e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -81,11 +81,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
81 return m_OSSL_Functions.osGetCurrentSunHour(); 81 return m_OSSL_Functions.osGetCurrentSunHour();
82 } 82 }
83 83
84 public double osGetSunParam(string param)
85 {
86 return m_OSSL_Functions.osGetSunParam(param);
87 }
88 // Deprecated
84 public double osSunGetParam(string param) 89 public double osSunGetParam(string param)
85 { 90 {
86 return m_OSSL_Functions.osSunGetParam(param); 91 return m_OSSL_Functions.osSunGetParam(param);
87 } 92 }
88 93
94 public void osSetSunParam(string param, double value)
95 {
96 m_OSSL_Functions.osSetSunParam(param, value);
97 }
98 // Deprecated
89 public void osSunSetParam(string param, double value) 99 public void osSunSetParam(string param, double value)
90 { 100 {
91 m_OSSL_Functions.osSunSetParam(param, value); 101 m_OSSL_Functions.osSunSetParam(param, value);
@@ -97,14 +107,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
97 } 107 }
98 108
99// Not yet plugged in as available OSSL functions, so commented out 109// Not yet plugged in as available OSSL functions, so commented out
100// void osWindParamSet(string plugin, string param, float value) 110// void osSetWindParam(string plugin, string param, float value)
101// { 111// {
102// m_OSSL_Functions.osWindParamSet(plugin, param, value); 112// m_OSSL_Functions.osSetWindParam(plugin, param, value);
103// } 113// }
104// 114//
105// float osWindParamGet(string plugin, string param) 115// float osGetWindParam(string plugin, string param)
106// { 116// {
107// return m_OSSL_Functions.osWindParamGet(plugin, param); 117// return m_OSSL_Functions.osGetWindParam(plugin, param);
108// } 118// }
109 119
110 public void osParcelJoin(vector pos1, vector pos2) 120 public void osParcelJoin(vector pos1, vector pos2)
@@ -165,11 +175,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
165 blend, disp, timer, alpha, face); 175 blend, disp, timer, alpha, face);
166 } 176 }
167 177
178 public LSL_Float osGetTerrainHeight(int x, int y)
179 {
180 return m_OSSL_Functions.osGetTerrainHeight(x, y);
181 }
182 // Deprecated
168 public LSL_Float osTerrainGetHeight(int x, int y) 183 public LSL_Float osTerrainGetHeight(int x, int y)
169 { 184 {
170 return m_OSSL_Functions.osTerrainGetHeight(x, y); 185 return m_OSSL_Functions.osTerrainGetHeight(x, y);
171 } 186 }
172 187
188 public LSL_Integer osSetTerrainHeight(int x, int y, double val)
189 {
190 return m_OSSL_Functions.osSetTerrainHeight(x, y, val);
191 }
192 // Deprecated
173 public LSL_Integer osTerrainSetHeight(int x, int y, double val) 193 public LSL_Integer osTerrainSetHeight(int x, int y, double val)
174 { 194 {
175 return m_OSSL_Functions.osTerrainSetHeight(x, y, val); 195 return m_OSSL_Functions.osTerrainSetHeight(x, y, val);
@@ -333,6 +353,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
333 return m_OSSL_Functions.osSetPenCap(drawList, direction, type); 353 return m_OSSL_Functions.osSetPenCap(drawList, direction, type);
334 } 354 }
335 355
356 public string osSetPenColor(string drawList, string color)
357 {
358 return m_OSSL_Functions.osSetPenColor(drawList, color);
359 }
360 // Deprecated
336 public string osSetPenColour(string drawList, string colour) 361 public string osSetPenColour(string drawList, string colour)
337 { 362 {
338 return m_OSSL_Functions.osSetPenColour(drawList, colour); 363 return m_OSSL_Functions.osSetPenColour(drawList, colour);
diff --git a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
index 0c41935..7ddcfa6 100644
--- a/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Hypergrid/UserAgentServiceConnector.cs
@@ -104,7 +104,7 @@ namespace OpenSim.Services.Connectors.Hypergrid
104 return false; 104 return false;
105 } 105 }
106 106
107 string uri = m_ServerURL + "/homeagent/" + aCircuit.AgentID + "/"; 107 string uri = m_ServerURL + "homeagent/" + aCircuit.AgentID + "/";
108 108
109 Console.WriteLine(" >>> LoginAgentToGrid <<< " + uri); 109 Console.WriteLine(" >>> LoginAgentToGrid <<< " + uri);
110 110
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
index c2f43ca..4382005 100644
--- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -235,6 +235,7 @@ namespace OpenSim.Services.Connectors.Simulation
235 m_log.Warn("[REMOTE SIMULATION CONNECTOR]: PackAgentCircuitData failed with exception: " + e.Message); 235 m_log.Warn("[REMOTE SIMULATION CONNECTOR]: PackAgentCircuitData failed with exception: " + e.Message);
236 return null; 236 return null;
237 } 237 }
238
238 // Add the input arguments 239 // Add the input arguments
239 args["destination_x"] = OSD.FromString(destination.RegionLocX.ToString()); 240 args["destination_x"] = OSD.FromString(destination.RegionLocX.ToString());
240 args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString()); 241 args["destination_y"] = OSD.FromString(destination.RegionLocY.ToString());
diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs
index d5d0195..9863ba0 100644
--- a/OpenSim/Services/GridService/HypergridLinker.cs
+++ b/OpenSim/Services/GridService/HypergridLinker.cs
@@ -26,6 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections;
29using System.Collections.Generic; 30using System.Collections.Generic;
30using System.Linq; 31using System.Linq;
31using System.Net; 32using System.Net;
@@ -215,7 +216,9 @@ namespace OpenSim.Services.GridService
215 216
216 public bool TryCreateLink(UUID scopeID, int xloc, int yloc, string remoteRegionName, uint externalPort, string externalHostName, string serverURI, UUID ownerID, out GridRegion regInfo, out string reason) 217 public bool TryCreateLink(UUID scopeID, int xloc, int yloc, string remoteRegionName, uint externalPort, string externalHostName, string serverURI, UUID ownerID, out GridRegion regInfo, out string reason)
217 { 218 {
218 m_log.DebugFormat("[HYPERGRID LINKER]: Link to {0}:{1}:{2}, in {3}-{4}", externalHostName, externalPort, remoteRegionName, xloc, yloc); 219 m_log.DebugFormat("[HYPERGRID LINKER]: Link to {0}:{1}, in {2}-{3}",
220 ((serverURI == null) ? (externalHostName + ":" + externalPort) : serverURI),
221 remoteRegionName, xloc / Constants.RegionSize, yloc / Constants.RegionSize);
219 222
220 reason = string.Empty; 223 reason = string.Empty;
221 regInfo = new GridRegion(); 224 regInfo = new GridRegion();
@@ -242,7 +245,9 @@ namespace OpenSim.Services.GridService
242 GridRegion region = m_GridService.GetRegionByPosition(regInfo.ScopeID, regInfo.RegionLocX, regInfo.RegionLocY); 245 GridRegion region = m_GridService.GetRegionByPosition(regInfo.ScopeID, regInfo.RegionLocX, regInfo.RegionLocY);
243 if (region != null) 246 if (region != null)
244 { 247 {
245 m_log.WarnFormat("[HYPERGRID LINKER]: Coordinates {0}-{1} are already occupied by region {2} with uuid {3}", regInfo.RegionLocX, regInfo.RegionLocY, region.RegionName, region.RegionID); 248 m_log.WarnFormat("[HYPERGRID LINKER]: Coordinates {0}-{1} are already occupied by region {2} with uuid {3}",
249 regInfo.RegionLocX / Constants.RegionSize, regInfo.RegionLocY / Constants.RegionSize,
250 region.RegionName, region.RegionID);
246 reason = "Coordinates are already in use"; 251 reason = "Coordinates are already in use";
247 return false; 252 return false;
248 } 253 }
@@ -271,7 +276,8 @@ namespace OpenSim.Services.GridService
271 region = m_GridService.GetRegionByUUID(scopeID, regionID); 276 region = m_GridService.GetRegionByUUID(scopeID, regionID);
272 if (region != null) 277 if (region != null)
273 { 278 {
274 m_log.DebugFormat("[HYPERGRID LINKER]: Region already exists in coordinates {0} {1}", region.RegionLocX / Constants.RegionSize, region.RegionLocY / Constants.RegionSize); 279 m_log.DebugFormat("[HYPERGRID LINKER]: Region already exists in coordinates {0} {1}",
280 region.RegionLocX / Constants.RegionSize, region.RegionLocY / Constants.RegionSize);
275 regInfo = region; 281 regInfo = region;
276 return true; 282 return true;
277 } 283 }
@@ -423,15 +429,14 @@ namespace OpenSim.Services.GridService
423 return; 429 return;
424 } 430 }
425 431
426 MainConsole.Instance.Output("Region Name Region UUID"); 432 MainConsole.Instance.Output("Region Name");
427 MainConsole.Instance.Output("Location URI"); 433 MainConsole.Instance.Output("Location Region UUID");
428 MainConsole.Instance.Output("-------------------------------------------------------------------------------"); 434 MainConsole.Instance.Output(new string('-', 72));
429 foreach (RegionData r in regions) 435 foreach (RegionData r in regions)
430 { 436 {
431 MainConsole.Instance.Output(String.Format("{0,-39} {1}\n{2,-39} {3}\n", 437 MainConsole.Instance.Output(String.Format("{0}\n{2,-32} {1}\n",
432 r.RegionName, r.RegionID, 438 r.RegionName, r.RegionID, String.Format("{0},{1} ({2},{3})", r.posX, r.posY,
433 String.Format("{0},{1} ({2},{3})", r.posX, r.posY, r.posX / 256, r.posY / 256), 439 r.posX / Constants.RegionSize, r.posY / Constants.RegionSize)));
434 "http://" + r.Data["serverIP"].ToString() + ":" + r.Data["serverHttpPort"].ToString()));
435 } 440 }
436 return; 441 return;
437 } 442 }
@@ -459,11 +464,14 @@ namespace OpenSim.Services.GridService
459 xloc = Convert.ToInt32(cmdparams[0]) * (int)Constants.RegionSize; 464 xloc = Convert.ToInt32(cmdparams[0]) * (int)Constants.RegionSize;
460 yloc = Convert.ToInt32(cmdparams[1]) * (int)Constants.RegionSize; 465 yloc = Convert.ToInt32(cmdparams[1]) * (int)Constants.RegionSize;
461 serverURI = cmdparams[2]; 466 serverURI = cmdparams[2];
462 if (cmdparams.Length == 4) 467 if (cmdparams.Length > 3)
463 remoteName = cmdparams[3]; 468 remoteName = string.Join(" ", cmdparams, 3, cmdparams.Length - 3);
464 string reason = string.Empty; 469 string reason = string.Empty;
465 GridRegion regInfo; 470 GridRegion regInfo;
466 TryCreateLink(UUID.Zero, xloc, yloc, remoteName, 0, null, serverURI, UUID.Zero, out regInfo, out reason); 471 if (TryCreateLink(UUID.Zero, xloc, yloc, remoteName, 0, null, serverURI, UUID.Zero, out regInfo, out reason))
472 MainConsole.Instance.Output("Hyperlink established");
473 else
474 MainConsole.Instance.Output("Failed to link region: " + reason);
467 } 475 }
468 476
469 private void RunHGCommand(string command, string[] cmdparams) 477 private void RunHGCommand(string command, string[] cmdparams)
@@ -488,18 +496,6 @@ namespace OpenSim.Services.GridService
488 } 496 }
489 else if (command.Equals("link-region")) 497 else if (command.Equals("link-region"))
490 { 498 {
491 if (cmdparams.Length > 0 && cmdparams.Length < 5)
492 {
493 RunLinkRegionCommand(cmdparams);
494 }
495 else
496 {
497 LinkRegionCmdUsage();
498 }
499 return;
500 }
501 else if (command.Equals("link-region"))
502 {
503 if (cmdparams.Length < 3) 499 if (cmdparams.Length < 3)
504 { 500 {
505 if ((cmdparams.Length == 1) || (cmdparams.Length == 2)) 501 if ((cmdparams.Length == 1) || (cmdparams.Length == 2))
@@ -514,40 +510,24 @@ namespace OpenSim.Services.GridService
514 } 510 }
515 511
516 //this should be the prefererred way of setting up hg links now 512 //this should be the prefererred way of setting up hg links now
517 if ( cmdparams[2].StartsWith("http") && ( cmdparams.Length >= 3 && cmdparams.Length <= 5 )) { 513 if (cmdparams[2].StartsWith("http"))
514 {
518 RunLinkRegionCommand(cmdparams); 515 RunLinkRegionCommand(cmdparams);
519 } 516 }
520 else if (cmdparams[2].Contains(":")) 517 else if (cmdparams[2].Contains(":"))
521 { 518 {
522 // New format 519 // New format
523 int xloc, yloc; 520 string[] parts = cmdparams[2].Split(':');
524 string mapName; 521 if (parts.Length > 2)
525 try
526 {
527 xloc = Convert.ToInt32(cmdparams[0]);
528 yloc = Convert.ToInt32(cmdparams[1]);
529 mapName = cmdparams[2];
530 if (cmdparams.Length > 3)
531 for (int i = 3; i < cmdparams.Length; i++)
532 mapName += " " + cmdparams[i];
533
534 //m_log.Info(">> MapName: " + mapName);
535 }
536 catch (Exception e)
537 { 522 {
538 MainConsole.Instance.Output("[HGrid] Wrong format for link-region command: " + e.Message); 523 // Insert remote region name
539 LinkRegionCmdUsage(); 524 ArrayList parameters = new ArrayList(cmdparams);
540 return; 525 parameters.Insert(3, parts[2]);
526 cmdparams = (string[])parameters.ToArray(typeof(string));
541 } 527 }
528 cmdparams[2] = "http://" + parts[0] + ':' + parts[1];
542 529
543 // Convert cell coordinates given by the user to meters 530 RunLinkRegionCommand(cmdparams);
544 xloc = xloc * (int)Constants.RegionSize;
545 yloc = yloc * (int)Constants.RegionSize;
546 string reason = string.Empty;
547 if (TryLinkRegionToCoords(UUID.Zero, mapName, xloc, yloc, out reason) == null)
548 MainConsole.Instance.Output("Failed to link region: " + reason);
549 else
550 MainConsole.Instance.Output("Hyperlink established");
551 } 531 }
552 else 532 else
553 { 533 {
@@ -556,16 +536,12 @@ namespace OpenSim.Services.GridService
556 int xloc, yloc; 536 int xloc, yloc;
557 uint externalPort; 537 uint externalPort;
558 string externalHostName; 538 string externalHostName;
559 string serverURI;
560 try 539 try
561 { 540 {
562 xloc = Convert.ToInt32(cmdparams[0]); 541 xloc = Convert.ToInt32(cmdparams[0]);
563 yloc = Convert.ToInt32(cmdparams[1]); 542 yloc = Convert.ToInt32(cmdparams[1]);
564 externalPort = Convert.ToUInt32(cmdparams[3]); 543 externalPort = Convert.ToUInt32(cmdparams[3]);
565 externalHostName = cmdparams[2]; 544 externalHostName = cmdparams[2];
566 if ( cmdparams.Length == 4 ) {
567
568 }
569 //internalPort = Convert.ToUInt32(cmdparams[4]); 545 //internalPort = Convert.ToUInt32(cmdparams[4]);
570 //remotingPort = Convert.ToUInt32(cmdparams[5]); 546 //remotingPort = Convert.ToUInt32(cmdparams[5]);
571 } 547 }
@@ -582,27 +558,30 @@ namespace OpenSim.Services.GridService
582 string reason = string.Empty; 558 string reason = string.Empty;
583 if (TryCreateLink(UUID.Zero, xloc, yloc, string.Empty, externalPort, externalHostName, UUID.Zero, out regInfo, out reason)) 559 if (TryCreateLink(UUID.Zero, xloc, yloc, string.Empty, externalPort, externalHostName, UUID.Zero, out regInfo, out reason))
584 { 560 {
585 if (cmdparams.Length >= 5) 561 // What is this? The GridRegion instance will be discarded anyway,
586 { 562 // which effectively ignores any local name given with the command.
587 regInfo.RegionName = ""; 563 //if (cmdparams.Length >= 5)
588 for (int i = 4; i < cmdparams.Length; i++) 564 //{
589 regInfo.RegionName += cmdparams[i] + " "; 565 // regInfo.RegionName = "";
590 } 566 // for (int i = 4; i < cmdparams.Length; i++)
567 // regInfo.RegionName += cmdparams[i] + " ";
568 //}
591 } 569 }
592 } 570 }
593 return; 571 return;
594 } 572 }
595 else if (command.Equals("unlink-region")) 573 else if (command.Equals("unlink-region"))
596 { 574 {
597 if (cmdparams.Length < 1 || cmdparams.Length > 1) 575 if (cmdparams.Length < 1)
598 { 576 {
599 UnlinkRegionCmdUsage(); 577 UnlinkRegionCmdUsage();
600 return; 578 return;
601 } 579 }
602 if (TryUnlinkRegion(cmdparams[0])) 580 string region = string.Join(" ", cmdparams);
603 MainConsole.Instance.Output("Successfully unlinked " + cmdparams[0]); 581 if (TryUnlinkRegion(region))
582 MainConsole.Instance.Output("Successfully unlinked " + region);
604 else 583 else
605 MainConsole.Instance.Output("Unable to unlink " + cmdparams[0] + ", region not found."); 584 MainConsole.Instance.Output("Unable to unlink " + region + ", region not found.");
606 } 585 }
607 } 586 }
608 587
diff --git a/OpenSim/Services/HypergridService/UserAgentService.cs b/OpenSim/Services/HypergridService/UserAgentService.cs
index 3519250..12dda48 100644
--- a/OpenSim/Services/HypergridService/UserAgentService.cs
+++ b/OpenSim/Services/HypergridService/UserAgentService.cs
@@ -101,7 +101,7 @@ namespace OpenSim.Services.HypergridService
101 serverConfig = config.Configs["GatekeeperService"]; 101 serverConfig = config.Configs["GatekeeperService"];
102 m_GridName = serverConfig.GetString("ExternalName", string.Empty); 102 m_GridName = serverConfig.GetString("ExternalName", string.Empty);
103 } 103 }
104 else if (!m_GridName.EndsWith("/")) 104 if (!m_GridName.EndsWith("/"))
105 m_GridName = m_GridName + "/"; 105 m_GridName = m_GridName + "/";
106 } 106 }
107 } 107 }
diff --git a/OpenSim/Services/Interfaces/IUserAccountService.cs b/OpenSim/Services/Interfaces/IUserAccountService.cs
index 2c09a2e..80258d6 100644
--- a/OpenSim/Services/Interfaces/IUserAccountService.cs
+++ b/OpenSim/Services/Interfaces/IUserAccountService.cs
@@ -101,7 +101,7 @@ namespace OpenSim.Services.Interfaces
101 if (str != string.Empty) 101 if (str != string.Empty)
102 { 102 {
103 string[] parts = str.Split(new char[] { ';' }); 103 string[] parts = str.Split(new char[] { ';' });
104 Dictionary<string, object> dic = new Dictionary<string, object>(); 104// Dictionary<string, object> dic = new Dictionary<string, object>();
105 foreach (string s in parts) 105 foreach (string s in parts)
106 { 106 {
107 string[] parts2 = s.Split(new char[] { '*' }); 107 string[] parts2 = s.Split(new char[] { '*' });
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs
index 1749836..93e4a8f 100644
--- a/OpenSim/Services/LLLoginService/LLLoginService.cs
+++ b/OpenSim/Services/LLLoginService/LLLoginService.cs
@@ -779,6 +779,8 @@ namespace OpenSim.Services.LLLoginService
779 { 779 {
780 aCircuit.ServiceURLs[kvp.Key] = kvp.Value; 780 aCircuit.ServiceURLs[kvp.Key] = kvp.Value;
781 } 781 }
782 if (!aCircuit.ServiceURLs[kvp.Key].ToString().EndsWith("/"))
783 aCircuit.ServiceURLs[kvp.Key] = aCircuit.ServiceURLs[kvp.Key] + "/";
782 } 784 }
783 785
784 // New style: service keys start with SRV_; override the previous 786 // New style: service keys start with SRV_; override the previous
@@ -791,6 +793,9 @@ namespace OpenSim.Services.LLLoginService
791 { 793 {
792 string keyName = serviceKey.Replace("SRV_", ""); 794 string keyName = serviceKey.Replace("SRV_", "");
793 aCircuit.ServiceURLs[keyName] = m_LoginServerConfig.GetString(serviceKey, string.Empty); 795 aCircuit.ServiceURLs[keyName] = m_LoginServerConfig.GetString(serviceKey, string.Empty);
796 if (!aCircuit.ServiceURLs[keyName].ToString().EndsWith("/"))
797 aCircuit.ServiceURLs[keyName] = aCircuit.ServiceURLs[keyName] + "/";
798
794 m_log.DebugFormat("[LLLOGIN SERVICE]: found new key {0} {1}", keyName, aCircuit.ServiceURLs[keyName]); 799 m_log.DebugFormat("[LLLOGIN SERVICE]: found new key {0} {1}", keyName, aCircuit.ServiceURLs[keyName]);
795 } 800 }
796 } 801 }