diff options
author | Melanie | 2012-05-14 23:32:49 +0100 |
---|---|---|
committer | Melanie | 2012-05-14 23:32:49 +0100 |
commit | 6126b6da72bc0d3265df1ec45901f10737173d9a (patch) | |
tree | 2e645853cccef8591738a59a8b76bb14a0d2fb0b /OpenSim/Region/CoreModules | |
parent | Merge branch 'avination' into careminster (diff) | |
parent | Save the Telehub and its Spawn Points in the OAR (diff) | |
download | opensim-SC_OLD-6126b6da72bc0d3265df1ec45901f10737173d9a.zip opensim-SC_OLD-6126b6da72bc0d3265df1ec45901f10737173d9a.tar.gz opensim-SC_OLD-6126b6da72bc0d3265df1ec45901f10737173d9a.tar.bz2 opensim-SC_OLD-6126b6da72bc0d3265df1ec45901f10737173d9a.tar.xz |
Merge branch 'master' into careminster
Conflicts:
OpenSim/Region/Framework/Scenes/Scene.cs
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
Diffstat (limited to 'OpenSim/Region/CoreModules')
6 files changed, 89 insertions, 39 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs index d98ea39..875c073 100644 --- a/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/AvatarFactory/AvatarFactoryModule.cs | |||
@@ -371,11 +371,21 @@ namespace OpenSim.Region.CoreModules.Avatar.AvatarFactory | |||
371 | if (missingTexturesOnly) | 371 | if (missingTexturesOnly) |
372 | { | 372 | { |
373 | if (m_scene.AssetService.Get(face.TextureID.ToString()) != null) | 373 | if (m_scene.AssetService.Get(face.TextureID.ToString()) != null) |
374 | { | ||
374 | continue; | 375 | continue; |
376 | } | ||
375 | else | 377 | else |
378 | { | ||
379 | // On inter-simulator teleports, this occurs if baked textures are not being stored by the | ||
380 | // grid asset service (which means that they are not available to the new region and so have | ||
381 | // to be re-requested from the client). | ||
382 | // | ||
383 | // The only available core OpenSimulator behaviour right now | ||
384 | // is not to store these textures, temporarily or otherwise. | ||
376 | m_log.DebugFormat( | 385 | m_log.DebugFormat( |
377 | "[AVFACTORY]: Missing baked texture {0} ({1}) for {2}, requesting rebake.", | 386 | "[AVFACTORY]: Missing baked texture {0} ({1}) for {2}, requesting rebake.", |
378 | face.TextureID, idx, sp.Name); | 387 | face.TextureID, idx, sp.Name); |
388 | } | ||
379 | } | 389 | } |
380 | else | 390 | else |
381 | { | 391 | { |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index d4fbdce..514a65b 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -53,7 +53,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
53 | public const int DefaultMaxTransferDistance = 4095; | 53 | public const int DefaultMaxTransferDistance = 4095; |
54 | public const bool EnableWaitForCallbackFromTeleportDestDefault = true; | 54 | public const bool EnableWaitForCallbackFromTeleportDestDefault = true; |
55 | 55 | ||
56 | |||
57 | /// <summary> | 56 | /// <summary> |
58 | /// The maximum distance, in standard region units (256m) that an agent is allowed to transfer. | 57 | /// The maximum distance, in standard region units (256m) that an agent is allowed to transfer. |
59 | /// </summary> | 58 | /// </summary> |
@@ -211,6 +210,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
211 | sp.Name, sp.AbsolutePosition, sp.Scene.RegionInfo.RegionName, position, destinationRegionName, | 210 | sp.Name, sp.AbsolutePosition, sp.Scene.RegionInfo.RegionName, position, destinationRegionName, |
212 | e.Message, e.StackTrace); | 211 | e.Message, e.StackTrace); |
213 | 212 | ||
213 | // Make sure that we clear the in-transit flag so that future teleport attempts don't always fail. | ||
214 | ResetFromTransit(sp.UUID); | ||
215 | |||
214 | sp.ControllingClient.SendTeleportFailed("Internal error"); | 216 | sp.ControllingClient.SendTeleportFailed("Internal error"); |
215 | } | 217 | } |
216 | } | 218 | } |
@@ -386,7 +388,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
386 | return; | 388 | return; |
387 | } | 389 | } |
388 | 390 | ||
389 | if (IsInTransit(sp.UUID)) // Avie is already on the way. Caller shouldn't do this. | 391 | if (!SetInTransit(sp.UUID)) // Avie is already on the way. Caller shouldn't do this. |
390 | { | 392 | { |
391 | m_log.DebugFormat( | 393 | m_log.DebugFormat( |
392 | "[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2} ({3}) {4}/{5} - agent is already in transit.", | 394 | "[ENTITY TRANSFER MODULE]: Ignoring teleport request of {0} {1} to {2} ({3}) {4}/{5} - agent is already in transit.", |
@@ -434,8 +436,11 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
434 | if (!m_aScene.SimulationService.QueryAccess(finalDestination, sp.ControllingClient.AgentId, Vector3.Zero, out version, out reason)) | 436 | if (!m_aScene.SimulationService.QueryAccess(finalDestination, sp.ControllingClient.AgentId, Vector3.Zero, out version, out reason)) |
435 | { | 437 | { |
436 | sp.ControllingClient.SendTeleportFailed("Teleport failed: " + reason); | 438 | sp.ControllingClient.SendTeleportFailed("Teleport failed: " + reason); |
439 | ResetFromTransit(sp.UUID); | ||
440 | |||
437 | return; | 441 | return; |
438 | } | 442 | } |
443 | |||
439 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Destination is running version {0}", version); | 444 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Destination is running version {0}", version); |
440 | 445 | ||
441 | sp.ControllingClient.SendTeleportStart(teleportFlags); | 446 | sp.ControllingClient.SendTeleportStart(teleportFlags); |
@@ -475,13 +480,16 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
475 | bool logout = false; | 480 | bool logout = false; |
476 | if (!CreateAgent(sp, reg, finalDestination, agentCircuit, teleportFlags, out reason, out logout)) | 481 | if (!CreateAgent(sp, reg, finalDestination, agentCircuit, teleportFlags, out reason, out logout)) |
477 | { | 482 | { |
478 | sp.ControllingClient.SendTeleportFailed(String.Format("Teleport refused: {0}", | 483 | sp.ControllingClient.SendTeleportFailed( |
479 | reason)); | 484 | String.Format("Teleport refused: {0}", reason)); |
485 | ResetFromTransit(sp.UUID); | ||
486 | |||
480 | return; | 487 | return; |
481 | } | 488 | } |
482 | 489 | ||
483 | // OK, it got this agent. Let's close some child agents | 490 | // OK, it got this agent. Let's close some child agents |
484 | sp.CloseChildAgents(newRegionX, newRegionY); | 491 | sp.CloseChildAgents(newRegionX, newRegionY); |
492 | |||
485 | IClientIPEndpoint ipepClient; | 493 | IClientIPEndpoint ipepClient; |
486 | if (NeedsNewAgent(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY)) | 494 | if (NeedsNewAgent(sp.DrawDistance, oldRegionX, newRegionX, oldRegionY, newRegionY)) |
487 | { | 495 | { |
@@ -518,8 +526,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
518 | capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath); | 526 | capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath); |
519 | } | 527 | } |
520 | 528 | ||
521 | SetInTransit(sp.UUID); | ||
522 | |||
523 | // Let's send a full update of the agent. This is a synchronous call. | 529 | // Let's send a full update of the agent. This is a synchronous call. |
524 | AgentData agent = new AgentData(); | 530 | AgentData agent = new AgentData(); |
525 | sp.CopyTo(agent); | 531 | sp.CopyTo(agent); |
@@ -532,8 +538,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
532 | { | 538 | { |
533 | // Region doesn't take it | 539 | // Region doesn't take it |
534 | m_log.WarnFormat( | 540 | m_log.WarnFormat( |
535 | "[ENTITY TRANSFER MODULE]: UpdateAgent failed on teleport of {0} to {1}. Returning avatar to source region.", | 541 | "[ENTITY TRANSFER MODULE]: UpdateAgent failed on teleport of {0} to {1} from {2}. Returning avatar to source region.", |
536 | sp.Name, finalDestination.RegionName); | 542 | sp.Name, finalDestination.RegionName, sp.Scene.RegionInfo.RegionName); |
537 | 543 | ||
538 | Fail(sp, finalDestination, logout); | 544 | Fail(sp, finalDestination, logout); |
539 | return; | 545 | return; |
@@ -565,8 +571,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
565 | if (EnableWaitForCallbackFromTeleportDest && !WaitForCallback(sp.UUID)) | 571 | if (EnableWaitForCallbackFromTeleportDest && !WaitForCallback(sp.UUID)) |
566 | { | 572 | { |
567 | m_log.WarnFormat( | 573 | m_log.WarnFormat( |
568 | "[ENTITY TRANSFER MODULE]: Teleport of {0} to {1} failed due to no callback from destination region. Returning avatar to source region.", | 574 | "[ENTITY TRANSFER MODULE]: Teleport of {0} to {1} from {2} failed due to no callback from destination region. Returning avatar to source region.", |
569 | sp.Name, finalDestination.RegionName); | 575 | sp.Name, finalDestination.RegionName, sp.Scene.RegionInfo.RegionName); |
570 | 576 | ||
571 | Fail(sp, finalDestination, logout); | 577 | Fail(sp, finalDestination, logout); |
572 | return; | 578 | return; |
@@ -662,8 +668,10 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
662 | protected virtual void SetCallbackURL(AgentData agent, RegionInfo region) | 668 | protected virtual void SetCallbackURL(AgentData agent, RegionInfo region) |
663 | { | 669 | { |
664 | agent.CallbackURI = region.ServerURI + "agent/" + agent.AgentID.ToString() + "/" + region.RegionID.ToString() + "/release/"; | 670 | agent.CallbackURI = region.ServerURI + "agent/" + agent.AgentID.ToString() + "/" + region.RegionID.ToString() + "/release/"; |
665 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Set callback URL to {0}", agent.CallbackURI); | ||
666 | 671 | ||
672 | m_log.DebugFormat( | ||
673 | "[ENTITY TRANSFER MODULE]: Set release callback URL to {0} in {1}", | ||
674 | agent.CallbackURI, region.RegionName); | ||
667 | } | 675 | } |
668 | 676 | ||
669 | protected virtual void AgentHasMovedAway(ScenePresence sp, bool logout) | 677 | protected virtual void AgentHasMovedAway(ScenePresence sp, bool logout) |
@@ -1921,25 +1929,43 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1921 | return count > 0; | 1929 | return count > 0; |
1922 | } | 1930 | } |
1923 | 1931 | ||
1924 | protected void SetInTransit(UUID id) | 1932 | /// <summary> |
1933 | /// Set that an agent is in the process of being teleported. | ||
1934 | /// </summary> | ||
1935 | /// <param name='id'>The ID of the agent being teleported</param> | ||
1936 | /// <returns>true if the agent was not already in transit, false if it was</returns> | ||
1937 | protected bool SetInTransit(UUID id) | ||
1925 | { | 1938 | { |
1926 | lock (m_agentsInTransit) | 1939 | lock (m_agentsInTransit) |
1927 | { | 1940 | { |
1928 | if (!m_agentsInTransit.Contains(id)) | 1941 | if (!m_agentsInTransit.Contains(id)) |
1942 | { | ||
1929 | m_agentsInTransit.Add(id); | 1943 | m_agentsInTransit.Add(id); |
1944 | return true; | ||
1945 | } | ||
1930 | } | 1946 | } |
1947 | |||
1948 | return false; | ||
1931 | } | 1949 | } |
1932 | 1950 | ||
1951 | /// <summary> | ||
1952 | /// Show whether the given agent is being teleported. | ||
1953 | /// </summary> | ||
1954 | /// <returns>true if the agent is in the process of being teleported, false otherwise.</returns> | ||
1955 | /// <param name='id'>The agent ID</para></param> | ||
1933 | protected bool IsInTransit(UUID id) | 1956 | protected bool IsInTransit(UUID id) |
1934 | { | 1957 | { |
1935 | lock (m_agentsInTransit) | 1958 | lock (m_agentsInTransit) |
1936 | { | 1959 | return m_agentsInTransit.Contains(id); |
1937 | if (m_agentsInTransit.Contains(id)) | ||
1938 | return true; | ||
1939 | } | ||
1940 | return false; | ||
1941 | } | 1960 | } |
1942 | 1961 | ||
1962 | /// <summary> | ||
1963 | /// Set that an agent is no longer being teleported. | ||
1964 | /// </summary> | ||
1965 | /// <returns></returns> | ||
1966 | /// <param name='id'> | ||
1967 | /// true if the agent was flagged as being teleported when this method was called, false otherwise | ||
1968 | /// </param> | ||
1943 | protected bool ResetFromTransit(UUID id) | 1969 | protected bool ResetFromTransit(UUID id) |
1944 | { | 1970 | { |
1945 | lock (m_agentsInTransit) | 1971 | lock (m_agentsInTransit) |
@@ -1950,6 +1976,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1950 | return true; | 1976 | return true; |
1951 | } | 1977 | } |
1952 | } | 1978 | } |
1979 | |||
1953 | return false; | 1980 | return false; |
1954 | } | 1981 | } |
1955 | 1982 | ||
@@ -1980,4 +2007,4 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1980 | #endregion | 2007 | #endregion |
1981 | 2008 | ||
1982 | } | 2009 | } |
1983 | } | 2010 | } \ No newline at end of file |
diff --git a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs index 9255791..e91e8b9 100644 --- a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs +++ b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs | |||
@@ -64,6 +64,8 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules | |||
64 | private TimeSpan m_QueueTimeout = new TimeSpan(2, 0, 0); // 2 hours without llGetNextEmail drops the queue | 64 | private TimeSpan m_QueueTimeout = new TimeSpan(2, 0, 0); // 2 hours without llGetNextEmail drops the queue |
65 | private string m_InterObjectHostname = "lsl.opensim.local"; | 65 | private string m_InterObjectHostname = "lsl.opensim.local"; |
66 | 66 | ||
67 | private int m_MaxEmailSize = 4096; // largest email allowed by default, as per lsl docs. | ||
68 | |||
67 | // Scenes by Region Handle | 69 | // Scenes by Region Handle |
68 | private Dictionary<ulong, Scene> m_Scenes = | 70 | private Dictionary<ulong, Scene> m_Scenes = |
69 | new Dictionary<ulong, Scene>(); | 71 | new Dictionary<ulong, Scene>(); |
@@ -127,6 +129,7 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules | |||
127 | SMTP_SERVER_PORT = SMTPConfig.GetInt("SMTP_SERVER_PORT", SMTP_SERVER_PORT); | 129 | SMTP_SERVER_PORT = SMTPConfig.GetInt("SMTP_SERVER_PORT", SMTP_SERVER_PORT); |
128 | SMTP_SERVER_LOGIN = SMTPConfig.GetString("SMTP_SERVER_LOGIN", SMTP_SERVER_LOGIN); | 130 | SMTP_SERVER_LOGIN = SMTPConfig.GetString("SMTP_SERVER_LOGIN", SMTP_SERVER_LOGIN); |
129 | SMTP_SERVER_PASSWORD = SMTPConfig.GetString("SMTP_SERVER_PASSWORD", SMTP_SERVER_PASSWORD); | 131 | SMTP_SERVER_PASSWORD = SMTPConfig.GetString("SMTP_SERVER_PASSWORD", SMTP_SERVER_PASSWORD); |
132 | m_MaxEmailSize = SMTPConfig.GetInt("email_max_size", m_MaxEmailSize); | ||
130 | } | 133 | } |
131 | catch (Exception e) | 134 | catch (Exception e) |
132 | { | 135 | { |
@@ -176,18 +179,6 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules | |||
176 | get { return true; } | 179 | get { return true; } |
177 | } | 180 | } |
178 | 181 | ||
179 | /// <summary> | ||
180 | /// Delay function using thread in seconds | ||
181 | /// </summary> | ||
182 | /// <param name="seconds"></param> | ||
183 | private void DelayInSeconds(int delay) | ||
184 | { | ||
185 | delay = (int)((float)delay * 1000); | ||
186 | if (delay == 0) | ||
187 | return; | ||
188 | System.Threading.Thread.Sleep(delay); | ||
189 | } | ||
190 | |||
191 | private bool IsLocal(UUID objectID) | 182 | private bool IsLocal(UUID objectID) |
192 | { | 183 | { |
193 | string unused; | 184 | string unused; |
@@ -267,10 +258,9 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules | |||
267 | m_log.Error("[EMAIL] REGEX Problem in EMail Address: "+address); | 258 | m_log.Error("[EMAIL] REGEX Problem in EMail Address: "+address); |
268 | return; | 259 | return; |
269 | } | 260 | } |
270 | //FIXME:Check if subject + body = 4096 Byte | 261 | if ((subject.Length + body.Length) > m_MaxEmailSize) |
271 | if ((subject.Length + body.Length) > 1024) | ||
272 | { | 262 | { |
273 | m_log.Error("[EMAIL] subject + body > 1024 Byte"); | 263 | m_log.Error("[EMAIL] subject + body larger than limit of " + m_MaxEmailSize + " bytes"); |
274 | return; | 264 | return; |
275 | } | 265 | } |
276 | 266 | ||
@@ -345,10 +335,6 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules | |||
345 | // TODO FIX | 335 | // TODO FIX |
346 | } | 336 | } |
347 | } | 337 | } |
348 | |||
349 | //DONE: Message as Second Life style | ||
350 | //20 second delay - AntiSpam System - for now only 10 seconds | ||
351 | DelayInSeconds(10); | ||
352 | } | 338 | } |
353 | 339 | ||
354 | /// <summary> | 340 | /// <summary> |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 38db239..0c4069f 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -245,6 +245,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
245 | // Reload serialized prims | 245 | // Reload serialized prims |
246 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); | 246 | m_log.InfoFormat("[ARCHIVER]: Loading {0} scene objects. Please wait.", serialisedSceneObjects.Count); |
247 | 247 | ||
248 | UUID oldTelehubUUID = m_scene.RegionInfo.RegionSettings.TelehubObject; | ||
249 | |||
248 | IRegionSerialiserModule serialiser = m_scene.RequestModuleInterface<IRegionSerialiserModule>(); | 250 | IRegionSerialiserModule serialiser = m_scene.RequestModuleInterface<IRegionSerialiserModule>(); |
249 | int sceneObjectsLoadedCount = 0; | 251 | int sceneObjectsLoadedCount = 0; |
250 | 252 | ||
@@ -266,11 +268,21 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
266 | 268 | ||
267 | SceneObjectGroup sceneObject = serialiser.DeserializeGroupFromXml2(serialisedSceneObject); | 269 | SceneObjectGroup sceneObject = serialiser.DeserializeGroupFromXml2(serialisedSceneObject); |
268 | 270 | ||
271 | bool isTelehub = (sceneObject.UUID == oldTelehubUUID); | ||
272 | |||
269 | // For now, give all incoming scene objects new uuids. This will allow scenes to be cloned | 273 | // For now, give all incoming scene objects new uuids. This will allow scenes to be cloned |
270 | // on the same region server and multiple examples a single object archive to be imported | 274 | // on the same region server and multiple examples a single object archive to be imported |
271 | // to the same scene (when this is possible). | 275 | // to the same scene (when this is possible). |
272 | sceneObject.ResetIDs(); | 276 | sceneObject.ResetIDs(); |
273 | 277 | ||
278 | if (isTelehub) | ||
279 | { | ||
280 | // Change the Telehub Object to the new UUID | ||
281 | m_scene.RegionInfo.RegionSettings.TelehubObject = sceneObject.UUID; | ||
282 | m_scene.RegionInfo.RegionSettings.Save(); | ||
283 | oldTelehubUUID = UUID.Zero; | ||
284 | } | ||
285 | |||
274 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid | 286 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid |
275 | // or creator data is present. Otherwise, use the estate owner instead. | 287 | // or creator data is present. Otherwise, use the estate owner instead. |
276 | foreach (SceneObjectPart part in sceneObject.Parts) | 288 | foreach (SceneObjectPart part in sceneObject.Parts) |
@@ -347,7 +359,14 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
347 | int ignoredObjects = serialisedSceneObjects.Count - sceneObjectsLoadedCount; | 359 | int ignoredObjects = serialisedSceneObjects.Count - sceneObjectsLoadedCount; |
348 | 360 | ||
349 | if (ignoredObjects > 0) | 361 | if (ignoredObjects > 0) |
350 | m_log.WarnFormat("[ARCHIVER]: Ignored {0} scene objects that already existed in the scene", ignoredObjects); | 362 | m_log.WarnFormat("[ARCHIVER]: Ignored {0} scene objects that already existed in the scene", ignoredObjects); |
363 | |||
364 | if (oldTelehubUUID != UUID.Zero) | ||
365 | { | ||
366 | m_log.WarnFormat("Telehub object not found: {0}", oldTelehubUUID); | ||
367 | m_scene.RegionInfo.RegionSettings.TelehubObject = UUID.Zero; | ||
368 | m_scene.RegionInfo.RegionSettings.ClearSpawnPoints(); | ||
369 | } | ||
351 | } | 370 | } |
352 | 371 | ||
353 | /// <summary> | 372 | /// <summary> |
@@ -523,6 +542,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
523 | currentRegionSettings.TerrainTexture4 = loadedRegionSettings.TerrainTexture4; | 542 | currentRegionSettings.TerrainTexture4 = loadedRegionSettings.TerrainTexture4; |
524 | currentRegionSettings.UseEstateSun = loadedRegionSettings.UseEstateSun; | 543 | currentRegionSettings.UseEstateSun = loadedRegionSettings.UseEstateSun; |
525 | currentRegionSettings.WaterHeight = loadedRegionSettings.WaterHeight; | 544 | currentRegionSettings.WaterHeight = loadedRegionSettings.WaterHeight; |
545 | currentRegionSettings.TelehubObject = loadedRegionSettings.TelehubObject; | ||
546 | currentRegionSettings.ClearSpawnPoints(); | ||
547 | foreach (SpawnPoint sp in loadedRegionSettings.SpawnPoints()) | ||
548 | currentRegionSettings.AddSpawnPoint(sp); | ||
526 | 549 | ||
527 | currentRegionSettings.Save(); | 550 | currentRegionSettings.Save(); |
528 | 551 | ||
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs index eabe46e..5679ad5 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs | |||
@@ -328,7 +328,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
328 | /// <returns></returns> | 328 | /// <returns></returns> |
329 | public string CreateControlFile(Dictionary<string, object> options) | 329 | public string CreateControlFile(Dictionary<string, object> options) |
330 | { | 330 | { |
331 | int majorVersion = MAX_MAJOR_VERSION, minorVersion = 7; | 331 | int majorVersion = MAX_MAJOR_VERSION, minorVersion = 8; |
332 | // | 332 | // |
333 | // if (options.ContainsKey("version")) | 333 | // if (options.ContainsKey("version")) |
334 | // { | 334 | // { |
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs index 053c6f5..394ca27 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs | |||
@@ -534,6 +534,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
534 | rs.TerrainTexture4 = UUID.Parse("00000000-0000-0000-0000-000000000080"); | 534 | rs.TerrainTexture4 = UUID.Parse("00000000-0000-0000-0000-000000000080"); |
535 | rs.UseEstateSun = true; | 535 | rs.UseEstateSun = true; |
536 | rs.WaterHeight = 23; | 536 | rs.WaterHeight = 23; |
537 | rs.TelehubObject = UUID.Parse("00000000-0000-0000-0000-111111111111"); | ||
538 | rs.AddSpawnPoint(SpawnPoint.Parse("1,-2,0.33")); | ||
537 | 539 | ||
538 | tar.WriteFile(ArchiveConstants.SETTINGS_PATH + "region1.xml", RegionSettingsSerializer.Serialize(rs)); | 540 | tar.WriteFile(ArchiveConstants.SETTINGS_PATH + "region1.xml", RegionSettingsSerializer.Serialize(rs)); |
539 | 541 | ||
@@ -580,6 +582,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
580 | Assert.That(loadedRs.TerrainTexture4, Is.EqualTo(UUID.Parse("00000000-0000-0000-0000-000000000080"))); | 582 | Assert.That(loadedRs.TerrainTexture4, Is.EqualTo(UUID.Parse("00000000-0000-0000-0000-000000000080"))); |
581 | Assert.That(loadedRs.UseEstateSun, Is.True); | 583 | Assert.That(loadedRs.UseEstateSun, Is.True); |
582 | Assert.That(loadedRs.WaterHeight, Is.EqualTo(23)); | 584 | Assert.That(loadedRs.WaterHeight, Is.EqualTo(23)); |
585 | Assert.AreEqual(UUID.Zero, loadedRs.TelehubObject); // because no object was found with the original UUID | ||
586 | Assert.AreEqual(0, loadedRs.SpawnPoints().Count); | ||
583 | } | 587 | } |
584 | 588 | ||
585 | /// <summary> | 589 | /// <summary> |