aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorHomer Horwitz2009-05-09 21:11:12 +0000
committerHomer Horwitz2009-05-09 21:11:12 +0000
commit1d234ca83f64b31b559ace3f63ebbba9f4903778 (patch)
tree887ba461d3ff20432806672786cbb82ff39b9aa4 /OpenSim
parent* Code to make MRM debugging easier. (diff)
downloadopensim-SC-1d234ca83f64b31b559ace3f63ebbba9f4903778.zip
opensim-SC-1d234ca83f64b31b559ace3f63ebbba9f4903778.tar.gz
opensim-SC-1d234ca83f64b31b559ace3f63ebbba9f4903778.tar.bz2
opensim-SC-1d234ca83f64b31b559ace3f63ebbba9f4903778.tar.xz
Fixed handling of inventory a bit
- AssetType isn't InventoryType. Those enums contain different numbers. Use AssetType for the asset type, InventoryType for the inventory type. - The ToString method (or ToLower) of AssetType/InventoryType doesn't necessarily return the correct LLSD string. - Replaced several magic numbers by their corresponding enum. - Fixed the invType for gestures and animations in the library. This should fix Mantis #3610 and the non-terminating inventory loading
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs16
-rw-r--r--OpenSim/Framework/Communications/Capabilities/Caps.cs14
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs10
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs4
5 files changed, 29 insertions, 21 deletions
diff --git a/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs b/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs
index ae242bd..5de44b6 100644
--- a/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs
+++ b/OpenSim/ApplicationPlugins/Rest/Inventory/RestInventoryServices.cs
@@ -2045,7 +2045,7 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
2045 // good as having type be specified in the XML. 2045 // good as having type be specified in the XML.
2046 2046
2047 if (ic.Item.AssetType == (int) AssetType.Unknown || 2047 if (ic.Item.AssetType == (int) AssetType.Unknown ||
2048 ic.Item.InvType == (int) AssetType.Unknown) 2048 ic.Item.InvType == (int) InventoryType.Unknown)
2049 { 2049 {
2050 Rest.Log.DebugFormat("{0} Attempting to infer item type", MsgId); 2050 Rest.Log.DebugFormat("{0} Attempting to infer item type", MsgId);
2051 2051
@@ -2078,8 +2078,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
2078 MsgId, parts[parts.Length-1]); 2078 MsgId, parts[parts.Length-1]);
2079 if (ic.Item.AssetType == (int) AssetType.Unknown) 2079 if (ic.Item.AssetType == (int) AssetType.Unknown)
2080 ic.Item.AssetType = (int) AssetType.ImageJPEG; 2080 ic.Item.AssetType = (int) AssetType.ImageJPEG;
2081 if (ic.Item.InvType == (int) AssetType.Unknown) 2081 if (ic.Item.InvType == (int) InventoryType.Unknown)
2082 ic.Item.InvType = (int) AssetType.ImageJPEG; 2082 ic.Item.InvType = (int) InventoryType.Texture;
2083 break; 2083 break;
2084 case "jpg" : 2084 case "jpg" :
2085 case "jpeg" : 2085 case "jpeg" :
@@ -2087,8 +2087,8 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
2087 MsgId, parts[parts.Length - 1]); 2087 MsgId, parts[parts.Length - 1]);
2088 if (ic.Item.AssetType == (int) AssetType.Unknown) 2088 if (ic.Item.AssetType == (int) AssetType.Unknown)
2089 ic.Item.AssetType = (int) AssetType.ImageJPEG; 2089 ic.Item.AssetType = (int) AssetType.ImageJPEG;
2090 if (ic.Item.InvType == (int) AssetType.Unknown) 2090 if (ic.Item.InvType == (int) InventoryType.Unknown)
2091 ic.Item.InvType = (int) AssetType.ImageJPEG; 2091 ic.Item.InvType = (int) InventoryType.Texture;
2092 break; 2092 break;
2093 case "tga" : 2093 case "tga" :
2094 if (parts[parts.Length - 2].IndexOf("_texture") != -1) 2094 if (parts[parts.Length - 2].IndexOf("_texture") != -1)
@@ -2096,14 +2096,14 @@ namespace OpenSim.ApplicationPlugins.Rest.Inventory
2096 if (ic.Item.AssetType == (int) AssetType.Unknown) 2096 if (ic.Item.AssetType == (int) AssetType.Unknown)
2097 ic.Item.AssetType = (int) AssetType.TextureTGA; 2097 ic.Item.AssetType = (int) AssetType.TextureTGA;
2098 if (ic.Item.InvType == (int) AssetType.Unknown) 2098 if (ic.Item.InvType == (int) AssetType.Unknown)
2099 ic.Item.InvType = (int) AssetType.TextureTGA; 2099 ic.Item.InvType = (int) InventoryType.Texture;
2100 } 2100 }
2101 else 2101 else
2102 { 2102 {
2103 if (ic.Item.AssetType == (int) AssetType.Unknown) 2103 if (ic.Item.AssetType == (int) AssetType.Unknown)
2104 ic.Item.AssetType = (int) AssetType.ImageTGA; 2104 ic.Item.AssetType = (int) AssetType.ImageTGA;
2105 if (ic.Item.InvType == (int) AssetType.Unknown) 2105 if (ic.Item.InvType == (int) InventoryType.Unknown)
2106 ic.Item.InvType = (int) AssetType.ImageTGA; 2106 ic.Item.InvType = (int) InventoryType.Snapshot;
2107 } 2107 }
2108 break; 2108 break;
2109 default : 2109 default :
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs
index 5809455..6e005b7 100644
--- a/OpenSim/Framework/Communications/Capabilities/Caps.cs
+++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs
@@ -365,7 +365,7 @@ namespace OpenSim.Framework.Communications.Capabilities
365 365
366 public string FetchInventoryDescendentsRequest(string request, string path, string param,OSHttpRequest httpRequest, OSHttpResponse httpResponse) 366 public string FetchInventoryDescendentsRequest(string request, string path, string param,OSHttpRequest httpRequest, OSHttpResponse httpResponse)
367 { 367 {
368 m_log.Debug("[CAPS]: FetchInventoryDescendentsRequest in region: " + m_regionName + "request is "+request); 368 m_log.Debug("[CAPS]: FetchInventoryDescendentsRequest in region: " + m_regionName + " request is "+request);
369 369
370 // nasty temporary hack here, the linden client falsely identifies the uuid 00000000-0000-0000-0000-000000000000 as a string which breaks us 370 // nasty temporary hack here, the linden client falsely identifies the uuid 00000000-0000-0000-0000-000000000000 as a string which breaks us
371 // correctly mark it as a uuid 371 // correctly mark it as a uuid
@@ -512,8 +512,16 @@ namespace OpenSim.Framework.Communications.Capabilities
512 llsdItem.item_id = invItem.ID; 512 llsdItem.item_id = invItem.ID;
513 llsdItem.name = invItem.Name; 513 llsdItem.name = invItem.Name;
514 llsdItem.parent_id = invItem.Folder; 514 llsdItem.parent_id = invItem.Folder;
515 llsdItem.type = Enum.GetName(typeof(AssetType), invItem.AssetType).ToLower(); 515 try
516 llsdItem.inv_type = Enum.GetName(typeof(InventoryType), invItem.InvType).ToLower(); 516 {
517 // TODO reevaluate after upgrade to libomv >= r2566. Probably should use UtilsConversions.
518 llsdItem.type = TaskInventoryItem.Types[invItem.AssetType];
519 llsdItem.inv_type = TaskInventoryItem.InvTypes[invItem.InvType];
520 }
521 catch (Exception e)
522 {
523 m_log.Error("[CAPS]: Problem setting asset/inventory type while converting inventory item " + invItem.Name + " to LLSD:", e);
524 }
517 llsdItem.permissions = new LLSDPermissions(); 525 llsdItem.permissions = new LLSDPermissions();
518 llsdItem.permissions.creator_id = invItem.CreatorIdAsUuid; 526 llsdItem.permissions.creator_id = invItem.CreatorIdAsUuid;
519 llsdItem.permissions.base_mask = (int)invItem.CurrentPermissions; 527 llsdItem.permissions.base_mask = (int)invItem.CurrentPermissions;
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index 88416d3..1dcdc06 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -490,7 +490,7 @@ namespace OpenSim.Region.Framework.Scenes
490 490
491 if (Permissions.PropagatePermissions()) 491 if (Permissions.PropagatePermissions())
492 { 492 {
493 if (item.InvType == 6) 493 if (item.InvType == (int)InventoryType.Object)
494 { 494 {
495 itemCopy.BasePermissions &= ~(uint)(PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer); 495 itemCopy.BasePermissions &= ~(uint)(PermissionMask.Copy | PermissionMask.Modify | PermissionMask.Transfer);
496 itemCopy.BasePermissions |= (item.CurrentPermissions & 7) << 13; 496 itemCopy.BasePermissions |= (item.CurrentPermissions & 7) << 13;
@@ -899,7 +899,7 @@ namespace OpenSim.Region.Framework.Scenes
899 TryGetAvatar(remoteClient.AgentId, out presence); 899 TryGetAvatar(remoteClient.AgentId, out presence);
900 byte[] data = null; 900 byte[] data = null;
901 901
902 if (invType == 3 && presence != null) // OpenMetaverse.asset.assettype.landmark = 3 - needs to be turned into an enum 902 if (invType == (sbyte)InventoryType.Landmark && presence != null)
903 { 903 {
904 Vector3 pos = presence.AbsolutePosition; 904 Vector3 pos = presence.AbsolutePosition;
905 string strdata = String.Format( 905 string strdata = String.Format(
@@ -1098,7 +1098,7 @@ namespace OpenSim.Region.Framework.Scenes
1098 1098
1099 if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions()) 1099 if ((part.OwnerID != destAgent) && Permissions.PropagatePermissions())
1100 { 1100 {
1101 if (taskItem.InvType == 6) 1101 if (taskItem.InvType == (int)InventoryType.Object)
1102 agentItem.BasePermissions = taskItem.BasePermissions & ((taskItem.CurrentPermissions & 7) << 13); 1102 agentItem.BasePermissions = taskItem.BasePermissions & ((taskItem.CurrentPermissions & 7) << 13);
1103 else 1103 else
1104 agentItem.BasePermissions = taskItem.BasePermissions; 1104 agentItem.BasePermissions = taskItem.BasePermissions;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
index 6bf1654..d03fec2 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
@@ -776,7 +776,7 @@ namespace OpenSim.Region.Framework.Scenes
776 776
777 foreach (TaskInventoryItem item in m_items.Values) 777 foreach (TaskInventoryItem item in m_items.Values)
778 { 778 {
779 if (item.InvType != 6) 779 if (item.InvType != (int)InventoryType.Object)
780 { 780 {
781 if ((item.CurrentPermissions & item.NextPermissions & (uint)PermissionMask.Copy) == 0) 781 if ((item.CurrentPermissions & item.NextPermissions & (uint)PermissionMask.Copy) == 0)
782 mask &= ~((uint)PermissionMask.Copy >> 13); 782 mask &= ~((uint)PermissionMask.Copy >> 13);
@@ -809,7 +809,7 @@ namespace OpenSim.Region.Framework.Scenes
809 { 809 {
810 foreach (TaskInventoryItem item in m_items.Values) 810 foreach (TaskInventoryItem item in m_items.Values)
811 { 811 {
812 if (item.InvType == 6 && (item.CurrentPermissions & 7) != 0) 812 if (item.InvType == (int)InventoryType.Object && (item.CurrentPermissions & 7) != 0)
813 { 813 {
814 if ((item.CurrentPermissions & ((uint)PermissionMask.Copy >> 13)) == 0) 814 if ((item.CurrentPermissions & ((uint)PermissionMask.Copy >> 13)) == 0)
815 item.CurrentPermissions &= ~(uint)PermissionMask.Copy; 815 item.CurrentPermissions &= ~(uint)PermissionMask.Copy;
@@ -840,7 +840,7 @@ namespace OpenSim.Region.Framework.Scenes
840 { 840 {
841 foreach (TaskInventoryItem item in m_items.Values) 841 foreach (TaskInventoryItem item in m_items.Values)
842 { 842 {
843 if (item.InvType == 10) 843 if (item.InvType == (int)InventoryType.LSL)
844 { 844 {
845 return true; 845 return true;
846 } 846 }
@@ -866,7 +866,7 @@ namespace OpenSim.Region.Framework.Scenes
866 866
867 foreach (TaskInventoryItem item in m_items.Values) 867 foreach (TaskInventoryItem item in m_items.Values)
868 { 868 {
869 if (item.InvType == 10) 869 if (item.InvType == (int)InventoryType.LSL)
870 { 870 {
871 foreach (IScriptModule e in engines) 871 foreach (IScriptModule e in engines)
872 { 872 {
@@ -890,7 +890,7 @@ namespace OpenSim.Region.Framework.Scenes
890 890
891 foreach (TaskInventoryItem item in m_items.Values) 891 foreach (TaskInventoryItem item in m_items.Values)
892 { 892 {
893 if (item.InvType == 10) 893 if (item.InvType == (int)InventoryType.LSL)
894 { 894 {
895 foreach (IScriptModule e in engines) 895 foreach (IScriptModule e in engines)
896 { 896 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 1cd25e7..e5c59aa 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -1351,8 +1351,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1351 taskItem.CreationDate = (uint)Util.UnixTimeSinceEpoch(); 1351 taskItem.CreationDate = (uint)Util.UnixTimeSinceEpoch();
1352 taskItem.Name = asset.Name; 1352 taskItem.Name = asset.Name;
1353 taskItem.Description = asset.Description; 1353 taskItem.Description = asset.Description;
1354 taskItem.Type = 7; 1354 taskItem.Type = (int)AssetType.Notecard;
1355 taskItem.InvType = 7; 1355 taskItem.InvType = (int)InventoryType.Notecard;
1356 taskItem.OwnerID = m_host.OwnerID; 1356 taskItem.OwnerID = m_host.OwnerID;
1357 taskItem.CreatorID = m_host.OwnerID; 1357 taskItem.CreatorID = m_host.OwnerID;
1358 taskItem.BasePermissions = (uint)PermissionMask.All; 1358 taskItem.BasePermissions = (uint)PermissionMask.All;