From 5fda81e6bbb80cbe904e69638f5f405aca78f111 Mon Sep 17 00:00:00 2001 From: Diva Canto Date: Fri, 30 Apr 2010 11:39:02 -0700 Subject: * XInventory fairly tested, including for HG. Almost ready to switch. * Removed a few buglets and added better exception handling. --- .../Hypergrid/HGInventoryServerInConnector.cs | 104 --------------------- .../Handlers/Inventory/XInventoryInConnector.cs | 50 ---------- 2 files changed, 154 deletions(-) delete mode 100644 OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs (limited to 'OpenSim/Server') diff --git a/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs b/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs deleted file mode 100644 index 41897eb..0000000 --- a/OpenSim/Server/Handlers/Hypergrid/HGInventoryServerInConnector.cs +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (c) Contributors, http://opensimulator.org/ - * See CONTRIBUTORS.TXT for a full list of copyright holders. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * * Neither the name of the OpenSimulator Project nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -using System; -using System.Collections; -using System.Collections.Generic; -using System.Net; -using System.Reflection; -using log4net; -using Nini.Config; -using Nwc.XmlRpc; -using OpenSim.Server.Base; -using OpenSim.Server.Handlers.Inventory; -using OpenSim.Services.Interfaces; -using OpenSim.Framework; -using OpenSim.Framework.Servers.HttpServer; -using OpenSim.Server.Handlers.Base; -using OpenMetaverse; - -namespace OpenSim.Server.Handlers.Hypergrid -{ - public class HGInventoryServiceInConnector : InventoryServiceInConnector - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - //private static readonly int INVENTORY_DEFAULT_SESSION_TIME = 30; // secs - //private AuthedSessionCache m_session_cache = new AuthedSessionCache(INVENTORY_DEFAULT_SESSION_TIME); - - private IUserAgentService m_UserAgentService; - - public HGInventoryServiceInConnector(IConfigSource config, IHttpServer server, string configName) : - base(config, server, configName) - { - IConfig serverConfig = config.Configs[m_ConfigName]; - if (serverConfig == null) - throw new Exception(String.Format("No section '{0}' in config file", m_ConfigName)); - - string userAgentService = serverConfig.GetString("UserAgentService", string.Empty); - string m_userserver_url = serverConfig.GetString("UserAgentURI", String.Empty); - if (m_userserver_url != string.Empty) - { - Object[] args = new Object[] { m_userserver_url }; - m_UserAgentService = ServerUtils.LoadPlugin(userAgentService, args); - } - - AddHttpHandlers(server); - m_log.Debug("[HG INVENTORY HANDLER]: handlers initialized"); - } - - /// - /// Check that the source of an inventory request for a particular agent is a current session belonging to - /// that agent. - /// - /// - /// - /// - public override bool CheckAuthSession(string session_id, string avatar_id) - { - //m_log.InfoFormat("[HG INVENTORY IN CONNECTOR]: checking authed session {0} {1}", session_id, avatar_id); - // This doesn't work - - // if (m_session_cache.getCachedSession(session_id, avatar_id) == null) - // { - // //cache miss, ask userserver - // m_UserAgentService.VerifyAgent(session_id, ???); - // } - // else - // { - // // cache hits - // m_log.Info("[HG INVENTORY IN CONNECTOR]: got authed session from cache"); - // return true; - // } - - // m_log.Warn("[HG INVENTORY IN CONNECTOR]: unknown session_id, request rejected"); - // return false; - - return true; - } - } -} diff --git a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs index 16b05df..b0fee6d 100644 --- a/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs +++ b/OpenSim/Server/Handlers/Inventory/XInventoryInConnector.cs @@ -144,8 +144,6 @@ namespace OpenSim.Server.Handlers.Asset return HandleGetActiveGestures(request); case "GETASSETPERMISSIONS": return HandleGetAssetPermissions(request); - case "GETSYSTEMFOLDERS": - return HandleGetSystemFolders(request); } m_log.DebugFormat("[XINVENTORY HANDLER]: unknown method request: {0}", method); } @@ -575,29 +573,6 @@ namespace OpenSim.Server.Handlers.Asset return encoding.GetBytes(xmlString); } - byte[] HandleGetSystemFolders(Dictionary request) - { - Dictionary result = new Dictionary(); - UUID principal = UUID.Zero; - UUID.TryParse(request["PRINCIPAL"].ToString(), out principal); - - Dictionary sfolders = GetSystemFolders(principal); - //m_log.DebugFormat("[XXX]: SystemFolders got {0} folders", sfolders.Count); - - Dictionary folders = new Dictionary(); - int i = 0; - foreach (KeyValuePair kvp in sfolders) - { - folders["folder_" + i.ToString()] = EncodeFolder(kvp.Value); - i++; - } - result["FOLDERS"] = folders; - - string xmlString = ServerUtils.BuildXmlResponse(result); - //m_log.DebugFormat("[XXX]: resp string: {0}", xmlString); - UTF8Encoding encoding = new UTF8Encoding(); - return encoding.GetBytes(xmlString); - } private Dictionary EncodeFolder(InventoryFolderBase f) { @@ -683,30 +658,5 @@ namespace OpenSim.Server.Handlers.Asset return item; } - #region Extra - private Dictionary GetSystemFolders(UUID userID) - { - InventoryFolderBase root = m_InventoryService.GetRootFolder(userID); - if (root != null) - { - InventoryCollection content = m_InventoryService.GetFolderContent(userID, root.ID); - if (content != null) - { - Dictionary folders = new Dictionary(); - foreach (InventoryFolderBase folder in content.Folders) - { - if ((folder.Type != (short)AssetType.Folder) && (folder.Type != (short)AssetType.Unknown)) - folders[(AssetType)folder.Type] = folder; - } - // Put the root folder there, as type Folder - folders[AssetType.Folder] = root; - return folders; - } - } - m_log.WarnFormat("[XINVENTORY SERVICE]: System folders for {0} not found", userID); - return new Dictionary(); - } - #endregion - } } -- cgit v1.1