From 58def34dbe01af970ca0cbd7362aa24cd85fc43d Mon Sep 17 00:00:00 2001 From: Kevin Cozens Date: Sun, 16 Jun 2013 12:00:58 -0400 Subject: Set default name for mute list module as shown in OpenSim.ini.example --- OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs index 7ce2813..a087569 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs @@ -58,7 +58,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage return; } - if (cnf != null && cnf.GetString("MuteListModule", "None") != + if (cnf != null && cnf.GetString("MuteListModule", "MuteListModule") != "MuteListModule") { enabled = false; -- cgit v1.1 From fe16a72a9a10c5b9057351f798d9098ada3002ae Mon Sep 17 00:00:00 2001 From: Kevin Cozens Date: Tue, 22 Oct 2013 15:43:18 -0400 Subject: Pass method to offline.php using ?blah instead of /blah/. Avoids issue with Apache web servers running PHP via CGI. --- .../Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs index 7f3d0a2..5900e21 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs @@ -179,7 +179,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage List msglist = SynchronousRestObjectRequester.MakeRequest>( - "POST", m_RestURL + "/RetrieveMessages/", client.AgentId); + "POST", m_RestURL + "?RetrieveMessages", client.AgentId); if (msglist == null) { @@ -231,7 +231,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage scene = m_SceneList[0]; bool success = SynchronousRestObjectRequester.MakeRequest( - "POST", m_RestURL+"/SaveMessage/", im); + "POST", m_RestURL+"?SaveMessage", im); if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent) { -- cgit v1.1 From 58d7e3b8ed24b2f7c68c7943b2b7a7a96c6a1565 Mon Sep 17 00:00:00 2001 From: Kevin Cozens Date: Sat, 22 Mar 2014 16:22:36 -0400 Subject: Reverting "Pass method to offline.php" commit that was pushed by mistake. This reverts commit fe16a72a9a10c5b9057351f798d9098ada3002ae. --- .../Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs index 5900e21..7f3d0a2 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/OfflineMessageModule.cs @@ -179,7 +179,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage List msglist = SynchronousRestObjectRequester.MakeRequest>( - "POST", m_RestURL + "?RetrieveMessages", client.AgentId); + "POST", m_RestURL + "/RetrieveMessages/", client.AgentId); if (msglist == null) { @@ -231,7 +231,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage scene = m_SceneList[0]; bool success = SynchronousRestObjectRequester.MakeRequest( - "POST", m_RestURL+"?SaveMessage", im); + "POST", m_RestURL+"/SaveMessage/", im); if (im.dialog == (byte)InstantMessageDialog.MessageFromAgent) { -- cgit v1.1 From ff5c38534d3bedbe10547409064f3410246bb9e6 Mon Sep 17 00:00:00 2001 From: Kevin Cozens Date: Sat, 22 Mar 2014 16:38:11 -0400 Subject: Reverting "Set default name for mute list" that was pushed by mistake. This reverts commit 58def34dbe01af970ca0cbd7362aa24cd85fc43d. --- OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs index a087569..7ce2813 100644 --- a/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/InstantMessage/MuteListModule.cs @@ -58,7 +58,7 @@ namespace OpenSim.Region.CoreModules.Avatar.InstantMessage return; } - if (cnf != null && cnf.GetString("MuteListModule", "MuteListModule") != + if (cnf != null && cnf.GetString("MuteListModule", "None") != "MuteListModule") { enabled = false; -- cgit v1.1 From db83208794fe6bef3e2d7f0574739c48fd36edc5 Mon Sep 17 00:00:00 2001 From: Dev Random Date: Sat, 22 Mar 2014 21:47:23 -0400 Subject: Fix negative stat for Active Scripts Signed-off-by: Michael Cerquoni --- OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 1ca142e..c3846d9 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs @@ -245,8 +245,9 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments string state = sog.GetStateSnapshot(); ad.AttachmentObjectStates.Add(state); sp.InTransitScriptStates.Add(state); - // Let's remove the scripts of the original object here - sog.RemoveScriptInstances(true); + + // Scripts of the originals will be removed when the Agent is successfully removed. + // sog.RemoveScriptInstances(true); } } } -- cgit v1.1 From bf68dbabd753ecfab812a4d533c16ad269dc64ad Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Thu, 24 Oct 2013 15:40:47 +0300 Subject: Save to database these parcel updates: Force Owner, Abandon Request, Reclaim. (Previously these updates only changed the parcel in memory) Resolves http://opensimulator.org/mantis/view.php?id=6934 --- OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 7f17aff..0ecf13b 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -1340,6 +1340,7 @@ namespace OpenSim.Region.CoreModules.World.Land m_scene.ForEachClient(SendParcelOverlay); land.SendLandUpdateToClient(true, remote_client); + UpdateLandObject(land.LandData.LocalID, land.LandData); } } } @@ -1360,8 +1361,10 @@ namespace OpenSim.Region.CoreModules.World.Land land.LandData.GroupID = UUID.Zero; land.LandData.IsGroupOwned = false; land.LandData.Flags &= ~(uint) (ParcelFlags.ForSale | ParcelFlags.ForSaleObjects | ParcelFlags.SellParcelObjects | ParcelFlags.ShowDirectory); + m_scene.ForEachClient(SendParcelOverlay); land.SendLandUpdateToClient(true, remote_client); + UpdateLandObject(land.LandData.LocalID, land.LandData); } } } @@ -1388,6 +1391,7 @@ namespace OpenSim.Region.CoreModules.World.Land m_scene.ForEachClient(SendParcelOverlay); land.SendLandUpdateToClient(true, remote_client); + UpdateLandObject(land.LandData.LocalID, land.LandData); } } } -- cgit v1.1 From 6edc4467807e227d7d62e3b6ab3ae7101ea2015c Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Fri, 25 Oct 2013 12:44:27 +0300 Subject: Fixed: OnRegionInfoChange was never triggered Resolves http://opensimulator.org/mantis/view.php?id=6934 --- OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs | 3 --- 1 file changed, 3 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 3bd7b4a..cb9ad4a 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs @@ -1342,10 +1342,7 @@ namespace OpenSim.Region.CoreModules.World.Estate { m_regionChangeTimer.Stop(); m_regionChangeTimer.Start(); - } - protected void RaiseRegionInfoChange(object sender, ElapsedEventArgs e) - { ChangeDelegate change = OnRegionInfoChange; if (change != null) -- cgit v1.1 From a2dd8f31dea20d43c942aeee7aae8b208989bbe7 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Wed, 30 Oct 2013 12:46:03 +0200 Subject: Trim search queries (for users, groups, etc.). I have found that sometimes the viewer adds a space at the end, which causes searches to fail. Resolves http://opensimulator.org/mantis/view.php?id=6935 --- OpenSim/Region/CoreModules/Framework/Search/BasicSearchModule.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Framework/Search/BasicSearchModule.cs b/OpenSim/Region/CoreModules/Framework/Search/BasicSearchModule.cs index 8838612..3849996 100644 --- a/OpenSim/Region/CoreModules/Framework/Search/BasicSearchModule.cs +++ b/OpenSim/Region/CoreModules/Framework/Search/BasicSearchModule.cs @@ -150,6 +150,8 @@ namespace OpenSim.Region.CoreModules.Framework.Search void OnDirFindQuery(IClientAPI remoteClient, UUID queryID, string queryText, uint queryFlags, int queryStart) { + queryText = queryText.Trim(); + if (((DirFindFlags)queryFlags & DirFindFlags.People) == DirFindFlags.People) { if (string.IsNullOrEmpty(queryText)) @@ -194,4 +196,4 @@ namespace OpenSim.Region.CoreModules.Framework.Search } -} \ No newline at end of file +} -- cgit v1.1 From c8583e566dd03d4a854e77c1c690fdc35c550398 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Wed, 30 Oct 2013 12:46:42 +0200 Subject: When searching for users, don't add users from the local cache if they have an invalid UUID Resolves http://opensimulator.org/mantis/view.php?id=6935 --- .../CoreModules/Framework/UserManagement/UserManagementModule.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs index 9f0a719..3455e2c 100644 --- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs +++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs @@ -278,7 +278,8 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement { foreach (UserData data in m_UserCache.Values) { - if (users.Find(delegate(UserData d) { return d.Id == data.Id; }) == null && + if (data.Id != UUID.Zero && + users.Find(delegate(UserData d) { return d.Id == data.Id; }) == null && (data.FirstName.ToLower().StartsWith(query.ToLower()) || data.LastName.ToLower().StartsWith(query.ToLower()))) users.Add(data); } @@ -725,4 +726,4 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement } -} \ No newline at end of file +} -- cgit v1.1 From 5fd94111434c2faa742d4eb7357d7a6b02253988 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Mon, 18 Nov 2013 12:48:23 +0200 Subject: Refactored Load IAR: created a generic mechanism to modify the SOG's as they are being loaded Resolves http://opensimulator.org/mantis/view.php?id=6942 --- .../Archiver/InventoryArchiveReadRequest.cs | 66 +++++++--------------- 1 file changed, 19 insertions(+), 47 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index f7057fe..9963521 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -483,52 +483,24 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver { if (m_creatorIdForAssetId.ContainsKey(assetId)) { - string xmlData = Utils.BytesToString(data); - List sceneObjects = new List(); + data = SceneObjectSerializer.ModifySerializedObject(assetId, data, + sog => { + bool modified = false; + + foreach (SceneObjectPart sop in sog.Parts) + { + if (string.IsNullOrEmpty(sop.CreatorData)) + { + sop.CreatorID = m_creatorIdForAssetId[assetId]; + modified = true; + } + } + + return modified; + }); - CoalescedSceneObjects coa = null; - if (CoalescedSceneObjectsSerializer.TryFromXml(xmlData, out coa)) - { -// m_log.DebugFormat( -// "[INVENTORY ARCHIVER]: Loaded coalescence {0} has {1} objects", assetId, coa.Count); - - if (coa.Objects.Count == 0) - { - m_log.WarnFormat( - "[INVENTORY ARCHIVE READ REQUEST]: Aborting load of coalesced object from asset {0} as it has zero loaded components", - assetId); - return false; - } - - sceneObjects.AddRange(coa.Objects); - } - else - { - SceneObjectGroup deserializedObject = SceneObjectSerializer.FromOriginalXmlFormat(xmlData); - - if (deserializedObject != null) - { - sceneObjects.Add(deserializedObject); - } - else - { - m_log.WarnFormat( - "[INVENTORY ARCHIVE READ REQUEST]: Aborting load of object from asset {0} as deserialization failed", - assetId); - - return false; - } - } - - foreach (SceneObjectGroup sog in sceneObjects) - foreach (SceneObjectPart sop in sog.Parts) - if (string.IsNullOrEmpty(sop.CreatorData)) - sop.CreatorID = m_creatorIdForAssetId[assetId]; - - if (coa != null) - data = Utils.StringToBytes(CoalescedSceneObjectsSerializer.ToXml(coa)); - else - data = Utils.StringToBytes(SceneObjectSerializer.ToOriginalXmlFormat(sceneObjects[0])); + if (data == null) + return false; } } @@ -550,7 +522,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver return false; } } - + /// /// Load control file /// @@ -656,4 +628,4 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver m_assetsLoaded = true; } } -} \ No newline at end of file +} -- cgit v1.1 From 35078e03e5a0c0fe6f691eddb3a4cc843d7b3243 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Mon, 18 Nov 2013 12:53:11 +0200 Subject: During Load OAR, fix the User and Group ID's in objects that are embedded in assets (previously only rezzed objects were fixed) Resolves http://opensimulator.org/mantis/view.php?id=6942 --- .../World/Archiver/ArchiveReadRequest.cs | 130 ++++++++++++--------- 1 file changed, 77 insertions(+), 53 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 2e638d4..0c7be6f 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs @@ -523,58 +523,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver oldTelehubUUID = UUID.Zero; } - // Try to retain the original creator/owner/lastowner if their uuid is present on this grid - // or creator data is present. Otherwise, use the estate owner instead. - foreach (SceneObjectPart part in sceneObject.Parts) - { - if (string.IsNullOrEmpty(part.CreatorData)) - { - if (!ResolveUserUuid(scene, part.CreatorID)) - part.CreatorID = scene.RegionInfo.EstateSettings.EstateOwner; - } - if (UserManager != null) - UserManager.AddUser(part.CreatorID, part.CreatorData); - - if (!ResolveUserUuid(scene, part.OwnerID)) - part.OwnerID = scene.RegionInfo.EstateSettings.EstateOwner; - - if (!ResolveUserUuid(scene, part.LastOwnerID)) - part.LastOwnerID = scene.RegionInfo.EstateSettings.EstateOwner; - - if (!ResolveGroupUuid(part.GroupID)) - part.GroupID = UUID.Zero; - - // And zap any troublesome sit target information -// part.SitTargetOrientation = new Quaternion(0, 0, 0, 1); -// part.SitTargetPosition = new Vector3(0, 0, 0); - - // Fix ownership/creator of inventory items - // Not doing so results in inventory items - // being no copy/no mod for everyone - lock (part.TaskInventory) - { - TaskInventoryDictionary inv = part.TaskInventory; - foreach (KeyValuePair kvp in inv) - { - if (!ResolveUserUuid(scene, kvp.Value.OwnerID)) - { - kvp.Value.OwnerID = scene.RegionInfo.EstateSettings.EstateOwner; - } - - if (string.IsNullOrEmpty(kvp.Value.CreatorData)) - { - if (!ResolveUserUuid(scene, kvp.Value.CreatorID)) - kvp.Value.CreatorID = scene.RegionInfo.EstateSettings.EstateOwner; - } - - if (UserManager != null) - UserManager.AddUser(kvp.Value.CreatorID, kvp.Value.CreatorData); - - if (!ResolveGroupUuid(kvp.Value.GroupID)) - kvp.Value.GroupID = UUID.Zero; - } - } - } + ModifySceneObject(scene, sceneObject); if (scene.AddRestoredSceneObject(sceneObject, true, false)) { @@ -598,6 +547,67 @@ namespace OpenSim.Region.CoreModules.World.Archiver scene.RegionInfo.RegionSettings.ClearSpawnPoints(); } } + + /// + /// Optionally modify a loaded SceneObjectGroup. Currently this just ensures that the + /// User IDs and Group IDs are valid, but other manipulations could be done as well. + /// + private void ModifySceneObject(Scene scene, SceneObjectGroup sceneObject) + { + // Try to retain the original creator/owner/lastowner if their uuid is present on this grid + // or creator data is present. Otherwise, use the estate owner instead. + foreach (SceneObjectPart part in sceneObject.Parts) + { + if (string.IsNullOrEmpty(part.CreatorData)) + { + if (!ResolveUserUuid(scene, part.CreatorID)) + part.CreatorID = scene.RegionInfo.EstateSettings.EstateOwner; + } + if (UserManager != null) + UserManager.AddUser(part.CreatorID, part.CreatorData); + + if (!ResolveUserUuid(scene, part.OwnerID)) + part.OwnerID = scene.RegionInfo.EstateSettings.EstateOwner; + + if (!ResolveUserUuid(scene, part.LastOwnerID)) + part.LastOwnerID = scene.RegionInfo.EstateSettings.EstateOwner; + + if (!ResolveGroupUuid(part.GroupID)) + part.GroupID = UUID.Zero; + + // And zap any troublesome sit target information + // part.SitTargetOrientation = new Quaternion(0, 0, 0, 1); + // part.SitTargetPosition = new Vector3(0, 0, 0); + + // Fix ownership/creator of inventory items + // Not doing so results in inventory items + // being no copy/no mod for everyone + lock (part.TaskInventory) + { + TaskInventoryDictionary inv = part.TaskInventory; + foreach (KeyValuePair kvp in inv) + { + if (!ResolveUserUuid(scene, kvp.Value.OwnerID)) + { + kvp.Value.OwnerID = scene.RegionInfo.EstateSettings.EstateOwner; + } + + if (string.IsNullOrEmpty(kvp.Value.CreatorData)) + { + if (!ResolveUserUuid(scene, kvp.Value.CreatorID)) + kvp.Value.CreatorID = scene.RegionInfo.EstateSettings.EstateOwner; + } + + if (UserManager != null) + UserManager.AddUser(kvp.Value.CreatorID, kvp.Value.CreatorData); + + if (!ResolveGroupUuid(kvp.Value.GroupID)) + kvp.Value.GroupID = UUID.Zero; + } + } + } + } + /// /// Load serialized parcels. @@ -754,7 +764,21 @@ namespace OpenSim.Region.CoreModules.World.Archiver sbyte assetType = ArchiveConstants.EXTENSION_TO_ASSET_TYPE[extension]; if (assetType == (sbyte)AssetType.Unknown) + { m_log.WarnFormat("[ARCHIVER]: Importing {0} byte asset {1} with unknown type", data.Length, uuid); + } + else if (assetType == (sbyte)AssetType.Object) + { + data = SceneObjectSerializer.ModifySerializedObject(UUID.Parse(uuid), data, + sog => + { + ModifySceneObject(m_rootScene, sog); + return true; + }); + + if (data == null) + return false; + } //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); @@ -977,4 +1001,4 @@ namespace OpenSim.Region.CoreModules.World.Archiver return dearchivedScenes; } } -} \ No newline at end of file +} -- cgit v1.1 From 305f5110c6d8c57ce2d4f9d0d052b564f3d1a4b9 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Thu, 24 Oct 2013 17:40:55 +0300 Subject: In Load OAR: Zero isn't a valid Group ID Resolves http://opensimulator.org/mantis/view.php?id=6943 --- OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index 0c7be6f..f5707eb 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs @@ -189,8 +189,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver m_rotationCenter = options.ContainsKey("rotation-center") ? (Vector3)options["rotation-center"] : new Vector3(scene.RegionInfo.RegionSizeX / 2f, scene.RegionInfo.RegionSizeY / 2f, 0f); - // Zero can never be a valid user id + // Zero can never be a valid user or group id m_validUserUuids[UUID.Zero] = false; + m_validGroupUuids[UUID.Zero] = false; m_groupsModule = m_rootScene.RequestModuleInterface(); m_assetService = m_rootScene.AssetService; @@ -705,9 +706,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver /// private bool ResolveGroupUuid(UUID uuid) { - if (uuid == UUID.Zero) - return true; // this means the object has no group - lock (m_validGroupUuids) { if (!m_validGroupUuids.ContainsKey(uuid)) -- cgit v1.1 From 1a32b352791fe5dd3a344ab6797f6fd62e3e5391 Mon Sep 17 00:00:00 2001 From: Oren Hurvitz Date: Sun, 12 Jan 2014 12:07:30 +0200 Subject: In Load OAR, correctly restore group-owned objects Resolves http://opensimulator.org/mantis/view.php?id=6943 --- OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'OpenSim/Region/CoreModules') diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index f5707eb..7920748 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs @@ -567,10 +567,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver if (UserManager != null) UserManager.AddUser(part.CreatorID, part.CreatorData); - if (!ResolveUserUuid(scene, part.OwnerID)) + if (!(ResolveUserUuid(scene, part.OwnerID) || ResolveGroupUuid(part.OwnerID))) part.OwnerID = scene.RegionInfo.EstateSettings.EstateOwner; - if (!ResolveUserUuid(scene, part.LastOwnerID)) + if (!(ResolveUserUuid(scene, part.LastOwnerID) || ResolveGroupUuid(part.LastOwnerID))) part.LastOwnerID = scene.RegionInfo.EstateSettings.EstateOwner; if (!ResolveGroupUuid(part.GroupID)) @@ -588,7 +588,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver TaskInventoryDictionary inv = part.TaskInventory; foreach (KeyValuePair kvp in inv) { - if (!ResolveUserUuid(scene, kvp.Value.OwnerID)) + if (!(ResolveUserUuid(scene, kvp.Value.OwnerID) || ResolveGroupUuid(kvp.Value.OwnerID))) { kvp.Value.OwnerID = scene.RegionInfo.EstateSettings.EstateOwner; } -- cgit v1.1