diff options
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 75 |
1 files changed, 38 insertions, 37 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 02d3991..0c5e62d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -815,54 +815,55 @@ namespace OpenSim.Region.Framework.Scenes | |||
815 | if (m_part.ParentGroup.Scene.Permissions.CanEditObjectInventory(m_part.UUID, client.AgentId)) | 815 | if (m_part.ParentGroup.Scene.Permissions.CanEditObjectInventory(m_part.UUID, client.AgentId)) |
816 | includeAssets = true; | 816 | includeAssets = true; |
817 | 817 | ||
818 | m_items.LockItemsForRead(true); | 818 | lock (m_items) |
819 | |||
820 | foreach (TaskInventoryItem item in m_items.Values) | ||
821 | { | 819 | { |
822 | UUID ownerID = item.OwnerID; | 820 | foreach (TaskInventoryItem item in m_items.Values) |
823 | uint everyoneMask = 0; | 821 | { |
824 | uint baseMask = item.BasePermissions; | 822 | UUID ownerID = item.OwnerID; |
825 | uint ownerMask = item.CurrentPermissions; | 823 | uint everyoneMask = 0; |
826 | uint groupMask = item.GroupPermissions; | 824 | uint baseMask = item.BasePermissions; |
825 | uint ownerMask = item.CurrentPermissions; | ||
826 | uint groupMask = item.GroupPermissions; | ||
827 | 827 | ||
828 | invString.AddItemStart(); | 828 | invString.AddItemStart(); |
829 | invString.AddNameValueLine("item_id", item.ItemID.ToString()); | 829 | invString.AddNameValueLine("item_id", item.ItemID.ToString()); |
830 | invString.AddNameValueLine("parent_id", m_part.UUID.ToString()); | 830 | invString.AddNameValueLine("parent_id", m_part.UUID.ToString()); |
831 | 831 | ||
832 | invString.AddPermissionsStart(); | 832 | invString.AddPermissionsStart(); |
833 | 833 | ||
834 | invString.AddNameValueLine("base_mask", Utils.UIntToHexString(baseMask)); | 834 | invString.AddNameValueLine("base_mask", Utils.UIntToHexString(baseMask)); |
835 | invString.AddNameValueLine("owner_mask", Utils.UIntToHexString(ownerMask)); | 835 | invString.AddNameValueLine("owner_mask", Utils.UIntToHexString(ownerMask)); |
836 | invString.AddNameValueLine("group_mask", Utils.UIntToHexString(groupMask)); | 836 | invString.AddNameValueLine("group_mask", Utils.UIntToHexString(groupMask)); |
837 | invString.AddNameValueLine("everyone_mask", Utils.UIntToHexString(everyoneMask)); | 837 | invString.AddNameValueLine("everyone_mask", Utils.UIntToHexString(everyoneMask)); |
838 | invString.AddNameValueLine("next_owner_mask", Utils.UIntToHexString(item.NextPermissions)); | 838 | invString.AddNameValueLine("next_owner_mask", Utils.UIntToHexString(item.NextPermissions)); |
839 | 839 | ||
840 | invString.AddNameValueLine("creator_id", item.CreatorID.ToString()); | 840 | invString.AddNameValueLine("creator_id", item.CreatorID.ToString()); |
841 | invString.AddNameValueLine("owner_id", ownerID.ToString()); | 841 | invString.AddNameValueLine("owner_id", ownerID.ToString()); |
842 | 842 | ||
843 | invString.AddNameValueLine("last_owner_id", item.LastOwnerID.ToString()); | 843 | invString.AddNameValueLine("last_owner_id", item.LastOwnerID.ToString()); |
844 | 844 | ||
845 | invString.AddNameValueLine("group_id", item.GroupID.ToString()); | 845 | invString.AddNameValueLine("group_id", item.GroupID.ToString()); |
846 | invString.AddSectionEnd(); | 846 | invString.AddSectionEnd(); |
847 | 847 | ||
848 | if (includeAssets) | 848 | if (includeAssets) |
849 | invString.AddNameValueLine("asset_id", item.AssetID.ToString()); | 849 | invString.AddNameValueLine("asset_id", item.AssetID.ToString()); |
850 | else | 850 | else |
851 | invString.AddNameValueLine("asset_id", UUID.Zero.ToString()); | 851 | invString.AddNameValueLine("asset_id", UUID.Zero.ToString()); |
852 | invString.AddNameValueLine("type", TaskInventoryItem.Types[item.Type]); | 852 | invString.AddNameValueLine("type", TaskInventoryItem.Types[item.Type]); |
853 | invString.AddNameValueLine("inv_type", TaskInventoryItem.InvTypes[item.InvType]); | 853 | invString.AddNameValueLine("inv_type", TaskInventoryItem.InvTypes[item.InvType]); |
854 | invString.AddNameValueLine("flags", Utils.UIntToHexString(item.Flags)); | 854 | invString.AddNameValueLine("flags", Utils.UIntToHexString(item.Flags)); |
855 | 855 | ||
856 | invString.AddSaleStart(); | 856 | invString.AddSaleStart(); |
857 | invString.AddNameValueLine("sale_type", "not"); | 857 | invString.AddNameValueLine("sale_type", "not"); |
858 | invString.AddNameValueLine("sale_price", "0"); | 858 | invString.AddNameValueLine("sale_price", "0"); |
859 | invString.AddSectionEnd(); | 859 | invString.AddSectionEnd(); |
860 | 860 | ||
861 | invString.AddNameValueLine("name", item.Name + "|"); | 861 | invString.AddNameValueLine("name", item.Name + "|"); |
862 | invString.AddNameValueLine("desc", item.Description + "|"); | 862 | invString.AddNameValueLine("desc", item.Description + "|"); |
863 | 863 | ||
864 | invString.AddNameValueLine("creation_date", item.CreationDate.ToString()); | 864 | invString.AddNameValueLine("creation_date", item.CreationDate.ToString()); |
865 | invString.AddSectionEnd(); | 865 | invString.AddSectionEnd(); |
866 | } | ||
866 | } | 867 | } |
867 | 868 | ||
868 | fileData = Utils.StringToBytes(invString.BuildString); | 869 | fileData = Utils.StringToBytes(invString.BuildString); |