From 16d303f7cd631d05cba24c95546da0f7d0d6c774 Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Mon, 21 May 2012 19:38:43 +0100
Subject: Fix bug where outfit folders could not be renamed.

Outfit folders are a type of system folder whose details are allowed to change.
---
 OpenSim/Services/InventoryService/XInventoryService.cs | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

(limited to 'OpenSim/Services')

diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs
index eed88bd..2ce1bab 100644
--- a/OpenSim/Services/InventoryService/XInventoryService.cs
+++ b/OpenSim/Services/InventoryService/XInventoryService.cs
@@ -327,27 +327,36 @@ namespace OpenSim.Services.InventoryService
 
         public virtual bool UpdateFolder(InventoryFolderBase folder)
         {
-            //m_log.DebugFormat("[XINVENTORY]: Update folder {0} {1} ({2})", folder.Name, folder.Type, folder.ID);
+//            m_log.DebugFormat("[XINVENTORY]: Update folder {0} {1} ({2})", folder.Name, folder.Type, folder.ID);
+
             XInventoryFolder xFolder = ConvertFromOpenSim(folder);
             InventoryFolderBase check = GetFolder(folder);
+
             if (check == null)
                 return AddFolder(folder);
 
-            if (check.Type != -1 || xFolder.type != -1)
+            if ((check.Type != (short)AssetType.Unknown || xFolder.type != (short)AssetType.Unknown)
+                && (check.Type != (short)AssetType.OutfitFolder || xFolder.type != (short)AssetType.OutfitFolder))
             {
                 if (xFolder.version < check.Version)
                 {
-                    //m_log.DebugFormat("[XINVENTORY]: {0} < {1} can't do", xFolder.version, check.Version);
+//                    m_log.DebugFormat("[XINVENTORY]: {0} < {1} can't do", xFolder.version, check.Version);
                     return false;
                 }
+
                 check.Version = (ushort)xFolder.version;
                 xFolder = ConvertFromOpenSim(check);
-                //m_log.DebugFormat("[XINVENTORY]: Storing {0} {1} {2}", xFolder.folderName, xFolder.version, xFolder.type);
+                
+//                m_log.DebugFormat(
+//                    "[XINVENTORY]: Storing version only update to system folder {0} {1} {2}",
+//                    xFolder.folderName, xFolder.version, xFolder.type);
+
                 return m_Database.StoreFolder(xFolder);
             }
 
             if (xFolder.version < check.Version)
                 xFolder.version = check.Version;
+
             xFolder.folderID = check.ID;
 
             return m_Database.StoreFolder(xFolder);
-- 
cgit v1.1