From 9177f2871086ba211c9c84490f322cfe8ad74494 Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Thu, 12 Feb 2009 19:54:19 +0000 Subject: * Make it possible to load and save inventory archives while a user is not logged in on standalone mode but not on grid mode * No user functionality yet --- .../Archiver/InventoryArchiveReadRequest.cs | 23 +++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs') diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index d8234bc..7189e36 100644 --- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs @@ -170,14 +170,27 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver int failedAssetRestores = 0; int successfulItemRestores = 0; List nodesLoaded = new List(); - + if (!m_userInfo.HasReceivedInventory) { - m_log.ErrorFormat( - "[INVENTORY ARCHIVER]: Have not yet received inventory info for user {0} {1}", - m_userInfo.UserProfile.Name, m_userInfo.UserProfile.ID); + // If the region server has access to the user admin service (by which users are created), + // then we'll assume that it's okay to fiddle with the user's inventory even if they are not on the + // server. + // + // FIXME: FetchInventory should probably be assumed to by async anyway, since even standalones might + // use a remote inventory service, though this is vanishingly rare at the moment. + if (null == commsManager.UserAdminService) + { + m_log.ErrorFormat( + "[INVENTORY ARCHIVER]: Have not yet received inventory info for user {0} {1}", + m_userInfo.UserProfile.Name, m_userInfo.UserProfile.ID); - return nodesLoaded; + return nodesLoaded; + } + else + { + m_userInfo.FetchInventory(); + } } InventoryFolderImpl inventoryFolder = m_userInfo.RootFolder.FindFolderByPath(m_invPath); -- cgit v1.1