diff options
author | Melanie | 2010-09-03 03:37:18 +0100 |
---|---|---|
committer | Melanie | 2010-09-03 03:37:18 +0100 |
commit | 4e0d6e8e41cf25a8e8d8524d9d5e94ab0752fb00 (patch) | |
tree | 6ecae46c7c5d46d4eb5a5ed65c1a7a8b8b15cc04 /OpenSim/Services/InventoryService/XInventoryService.cs | |
parent | Fix an issue with rezzing scripted objects. (diff) | |
parent | Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim (diff) | |
download | opensim-SC-4e0d6e8e41cf25a8e8d8524d9d5e94ab0752fb00.zip opensim-SC-4e0d6e8e41cf25a8e8d8524d9d5e94ab0752fb00.tar.gz opensim-SC-4e0d6e8e41cf25a8e8d8524d9d5e94ab0752fb00.tar.bz2 opensim-SC-4e0d6e8e41cf25a8e8d8524d9d5e94ab0752fb00.tar.xz |
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Services/InventoryService/XInventoryService.cs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs index 84306e7..fb395ec 100644 --- a/OpenSim/Services/InventoryService/XInventoryService.cs +++ b/OpenSim/Services/InventoryService/XInventoryService.cs | |||
@@ -293,13 +293,35 @@ namespace OpenSim.Services.InventoryService | |||
293 | 293 | ||
294 | public virtual bool AddFolder(InventoryFolderBase folder) | 294 | public virtual bool AddFolder(InventoryFolderBase folder) |
295 | { | 295 | { |
296 | InventoryFolderBase check = GetFolder(folder); | ||
297 | if (check != null) | ||
298 | return false; | ||
299 | |||
296 | XInventoryFolder xFolder = ConvertFromOpenSim(folder); | 300 | XInventoryFolder xFolder = ConvertFromOpenSim(folder); |
297 | return m_Database.StoreFolder(xFolder); | 301 | return m_Database.StoreFolder(xFolder); |
298 | } | 302 | } |
299 | 303 | ||
300 | public virtual bool UpdateFolder(InventoryFolderBase folder) | 304 | public virtual bool UpdateFolder(InventoryFolderBase folder) |
301 | { | 305 | { |
302 | return AddFolder(folder); | 306 | XInventoryFolder xFolder = ConvertFromOpenSim(folder); |
307 | InventoryFolderBase check = GetFolder(folder); | ||
308 | if (check == null) | ||
309 | return AddFolder(folder); | ||
310 | |||
311 | if (check.Type != -1 || xFolder.type != -1) | ||
312 | { | ||
313 | if (xFolder.version > check.Version) | ||
314 | return false; | ||
315 | check.Version = (ushort)xFolder.version; | ||
316 | xFolder = ConvertFromOpenSim(check); | ||
317 | return m_Database.StoreFolder(xFolder); | ||
318 | } | ||
319 | |||
320 | if (xFolder.version < check.Version) | ||
321 | xFolder.version = check.Version; | ||
322 | xFolder.folderID = check.ID; | ||
323 | |||
324 | return m_Database.StoreFolder(xFolder); | ||
303 | } | 325 | } |
304 | 326 | ||
305 | public virtual bool MoveFolder(InventoryFolderBase folder) | 327 | public virtual bool MoveFolder(InventoryFolderBase folder) |