diff --git a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs index 90ce44a65b..1608039517 100644 --- a/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs +++ b/OpenSim/Services/HypergridService/HGSuitcaseInventoryService.cs @@ -215,25 +215,17 @@ namespace OpenSim.Services.HypergridService if (suitcase == null) { m_log.ErrorFormat("[HG SUITCASE INVENTORY SERVICE]: Unable to create suitcase folder"); + return null; } - else - { - m_Database.StoreFolder(suitcase); + + m_Database.StoreFolder(suitcase); - // Create System folders - CreateSystemFolders(principalID, suitcase.folderID); - - SetAsNormalFolder(suitcase); - - return ConvertToOpenSim(suitcase); - } - } - else - { - return ConvertToOpenSim(suitcase); + CreateSystemFolders(principalID, suitcase.folderID); } - return null; + SetAsNormalFolder(suitcase); + + return ConvertToOpenSim(suitcase); } protected void CreateSystemFolders(UUID principalID, UUID rootID) diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index 46a5c180e6..d8f036adfe 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs @@ -58,6 +58,7 @@ namespace OpenSim.Services.LLLoginService protected IGridUserService m_GridUserService; protected IAuthenticationService m_AuthenticationService; protected IInventoryService m_InventoryService; + protected IInventoryService m_HGInventoryService; protected IGridService m_GridService; protected IPresenceService m_PresenceService; protected ISimulationService m_LocalSimulationService; @@ -165,6 +166,14 @@ namespace OpenSim.Services.LLLoginService if (agentService != string.Empty) m_UserAgentService = ServerUtils.LoadPlugin(agentService, args); + // Get the Hypergrid inventory service (exists only if Hypergrid is enabled) + string hgInvService = Util.GetConfigVarFromSections(config, "LocalServiceModule", new string[] { "HGInventoryService" }, String.Empty); + if (hgInvService != string.Empty) + { + Object[] args2 = new Object[] { config, "HGInventoryService" }; + m_HGInventoryService = ServerUtils.LoadPlugin(hgInvService, args2); + } + // // deal with the services given as argument // @@ -350,6 +359,13 @@ namespace OpenSim.Services.LLLoginService return LLFailedLoginResponse.InventoryProblem; } + if (m_HGInventoryService != null) + { + // Give the Suitcase service a chance to create the suitcase folder. + // (If we're not using the Suitcase inventory service then this won't do anything.) + m_HGInventoryService.GetRootFolder(account.PrincipalID); + } + List inventorySkel = m_InventoryService.GetInventorySkeleton(account.PrincipalID); if (m_RequireInventory && ((inventorySkel == null) || (inventorySkel != null && inventorySkel.Count == 0))) {