diff --git a/OpenSim/Data/MySQL/Resources/002_GridStore.sql b/OpenSim/Data/MySQL/Resources/002_GridStore.sql index bda43d070c..35b9be122e 100644 --- a/OpenSim/Data/MySQL/Resources/002_GridStore.sql +++ b/OpenSim/Data/MySQL/Resources/002_GridStore.sql @@ -1,5 +1,5 @@ -BEGIN; - -ALTER TABLE regions add column access integer unsigned default 1; - -COMMIT; +BEGIN; + +ALTER TABLE regions add column access integer unsigned default 1; + +COMMIT; diff --git a/OpenSim/Framework/Client/IClientIPEndpoint.cs b/OpenSim/Framework/Client/IClientIPEndpoint.cs index b80dea5bed..d59bd313e9 100644 --- a/OpenSim/Framework/Client/IClientIPEndpoint.cs +++ b/OpenSim/Framework/Client/IClientIPEndpoint.cs @@ -1,12 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Net; -using System.Text; - -namespace OpenSim.Framework.Client -{ - public interface IClientIPEndpoint - { - IPAddress EndPoint { get; } - } -} +using System; +using System.Collections.Generic; +using System.Net; +using System.Text; + +namespace OpenSim.Framework.Client +{ + public interface IClientIPEndpoint + { + IPAddress EndPoint { get; } + } +} diff --git a/OpenSim/Region/CoreModules/Agent/IPBan/IPBanModule.cs b/OpenSim/Region/CoreModules/Agent/IPBan/IPBanModule.cs index b904cb0fbc..28e0382492 100644 --- a/OpenSim/Region/CoreModules/Agent/IPBan/IPBanModule.cs +++ b/OpenSim/Region/CoreModules/Agent/IPBan/IPBanModule.cs @@ -1,81 +1,81 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; -using Nini.Config; -using OpenSim.Framework; -using OpenSim.Region.Framework.Interfaces; -using OpenSim.Region.Framework.Scenes; - -namespace OpenSim.Region.CoreModules.Agent.IPBan -{ - public class IPBanModule : IRegionModule - { - #region Implementation of IRegionModule - - private List m_bans = new List(); - - public void Initialise(Scene scene, IConfigSource source) - { - new SceneBanner(scene, m_bans); - - lock(m_bans) - { - foreach (EstateBan ban in scene.RegionInfo.EstateSettings.EstateBans) - { - if(!String.IsNullOrEmpty(ban.BannedHostIPMask)) - m_bans.Add(ban.BannedHostIPMask); - if (!String.IsNullOrEmpty(ban.BannedHostNameMask)) - m_bans.Add(ban.BannedHostNameMask); - } - } - } - - public void PostInitialise() - { - if(File.Exists("bans.txt")) - { - string[] bans = File.ReadAllLines("bans.txt"); - foreach (string ban in bans) - { - m_bans.Add(ban); - } - } - } - - public void Close() - { - - } - - public string Name - { - get { return "IPBanModule"; } - } - - public bool IsSharedModule - { - get { return true; } - } - - #endregion - - /// - /// Bans all users from the specified network from connecting. - /// DNS bans are in the form "somewhere.com" will block ANY - /// matching domain (including "betasomewhere.com", "beta.somewhere.com", - /// "somewhere.com.beta") - make sure to be reasonably specific in DNS - /// bans. - /// - /// IP address bans match on first characters, so, - /// "127.0.0.1" will ban only that address, - /// "127.0.1" will ban "127.0.10.0" - /// but "127.0.1." will ban only the "127.0.1.*" network - /// - /// See summary for explanation of parameter - public void Ban(string host) - { - m_bans.Add(host); - } - } -} +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; +using Nini.Config; +using OpenSim.Framework; +using OpenSim.Region.Framework.Interfaces; +using OpenSim.Region.Framework.Scenes; + +namespace OpenSim.Region.CoreModules.Agent.IPBan +{ + public class IPBanModule : IRegionModule + { + #region Implementation of IRegionModule + + private List m_bans = new List(); + + public void Initialise(Scene scene, IConfigSource source) + { + new SceneBanner(scene, m_bans); + + lock(m_bans) + { + foreach (EstateBan ban in scene.RegionInfo.EstateSettings.EstateBans) + { + if(!String.IsNullOrEmpty(ban.BannedHostIPMask)) + m_bans.Add(ban.BannedHostIPMask); + if (!String.IsNullOrEmpty(ban.BannedHostNameMask)) + m_bans.Add(ban.BannedHostNameMask); + } + } + } + + public void PostInitialise() + { + if(File.Exists("bans.txt")) + { + string[] bans = File.ReadAllLines("bans.txt"); + foreach (string ban in bans) + { + m_bans.Add(ban); + } + } + } + + public void Close() + { + + } + + public string Name + { + get { return "IPBanModule"; } + } + + public bool IsSharedModule + { + get { return true; } + } + + #endregion + + /// + /// Bans all users from the specified network from connecting. + /// DNS bans are in the form "somewhere.com" will block ANY + /// matching domain (including "betasomewhere.com", "beta.somewhere.com", + /// "somewhere.com.beta") - make sure to be reasonably specific in DNS + /// bans. + /// + /// IP address bans match on first characters, so, + /// "127.0.0.1" will ban only that address, + /// "127.0.1" will ban "127.0.10.0" + /// but "127.0.1." will ban only the "127.0.1.*" network + /// + /// See summary for explanation of parameter + public void Ban(string host) + { + m_bans.Add(host); + } + } +} diff --git a/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs b/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs index 20a21590b3..a5e9963209 100644 --- a/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs +++ b/OpenSim/Region/CoreModules/Agent/IPBan/SceneBanner.cs @@ -1,52 +1,52 @@ -using System.Collections.Generic; -using System.Net; -using OpenSim.Framework.Client; -using OpenSim.Region.Framework.Scenes; - -namespace OpenSim.Region.CoreModules.Agent.IPBan -{ - internal class SceneBanner - { - private static readonly log4net.ILog m_log - = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - - private List bans; - private SceneBase m_scene; - public SceneBanner(SceneBase scene, List banList) - { - scene.EventManager.OnClientConnect += EventManager_OnClientConnect; - - bans = banList; - m_scene = scene; - } - - void EventManager_OnClientConnect(IClientCore client) - { - IClientIPEndpoint ipEndpoint; - if(client.TryGet(out ipEndpoint)) - { - IPAddress end = ipEndpoint.EndPoint; - - try - { - IPHostEntry rDNS = Dns.GetHostEntry(end); - foreach (string ban in bans) - { - if (rDNS.HostName.Contains(ban) || - end.ToString().StartsWith(ban)) - { - client.Disconnect("Banned - network \"" + ban + "\" is not allowed to connect to this server."); - m_log.Warn("[IPBAN] Disconnected '" + end + "' due to '" + ban + "' ban."); - return; - } - } - } - catch (System.Net.Sockets.SocketException sex) - { - m_log.WarnFormat("[IPBAN] IP address \"{0}\" cannot be resolved via DNS", end); - } - m_log.WarnFormat("[IPBAN] User \"{0}\" not in any ban lists. Allowing connection.", end); - } - } - } -} +using System.Collections.Generic; +using System.Net; +using OpenSim.Framework.Client; +using OpenSim.Region.Framework.Scenes; + +namespace OpenSim.Region.CoreModules.Agent.IPBan +{ + internal class SceneBanner + { + private static readonly log4net.ILog m_log + = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); + + private List bans; + private SceneBase m_scene; + public SceneBanner(SceneBase scene, List banList) + { + scene.EventManager.OnClientConnect += EventManager_OnClientConnect; + + bans = banList; + m_scene = scene; + } + + void EventManager_OnClientConnect(IClientCore client) + { + IClientIPEndpoint ipEndpoint; + if(client.TryGet(out ipEndpoint)) + { + IPAddress end = ipEndpoint.EndPoint; + + try + { + IPHostEntry rDNS = Dns.GetHostEntry(end); + foreach (string ban in bans) + { + if (rDNS.HostName.Contains(ban) || + end.ToString().StartsWith(ban)) + { + client.Disconnect("Banned - network \"" + ban + "\" is not allowed to connect to this server."); + m_log.Warn("[IPBAN] Disconnected '" + end + "' due to '" + ban + "' ban."); + return; + } + } + } + catch (System.Net.Sockets.SocketException sex) + { + m_log.WarnFormat("[IPBAN] IP address \"{0}\" cannot be resolved via DNS", end); + } + m_log.WarnFormat("[IPBAN] User \"{0}\" not in any ban lists. Allowing connection.", end); + } + } + } +} diff --git a/OpenSim/Servers/Connectors/Asset/AssetServiceConnector.cs b/OpenSim/Servers/Connectors/Asset/AssetServiceConnector.cs index b2b4cc2758..df9507adec 100644 --- a/OpenSim/Servers/Connectors/Asset/AssetServiceConnector.cs +++ b/OpenSim/Servers/Connectors/Asset/AssetServiceConnector.cs @@ -45,14 +45,14 @@ namespace OpenSim.Servers.Connectors MethodBase.GetCurrentMethod().DeclaringType); private string m_ServerURI = String.Empty; - private IImprovedAssetCache m_Cache = null; - - public AssetServicesConnector() - { + private IImprovedAssetCache m_Cache = null; + + public AssetServicesConnector() + { } public AssetServicesConnector(string serverURI) - { + { m_ServerURI = serverURI; } @@ -201,7 +201,7 @@ namespace OpenSim.Servers.Connectors if (newID != String.Empty) { // Placing this here, so that this work with old asset servers that don't send any reply back - // SynchronousRestObjectRequester returns somethins that is not an empty string + // SynchronousRestObjectRequester returns somethins that is not an empty string if (newID != null) asset.ID = newID; diff --git a/OpenSim/SimulatorServices/RegionAssetService.cs b/OpenSim/SimulatorServices/RegionAssetService.cs index 9a2cbb92ef..651e6d4afa 100644 --- a/OpenSim/SimulatorServices/RegionAssetService.cs +++ b/OpenSim/SimulatorServices/RegionAssetService.cs @@ -1,123 +1,123 @@ -/* - * 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 OpenSim 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.Reflection; -using log4net; -using Nini.Config; -using OpenSim.Framework; -using OpenSim.Framework.Servers.HttpServer; -using OpenSim.Region.Framework.Scenes; -using OpenSim.Region.Framework.Interfaces; -using OpenSim.Servers.AssetServer.Handlers; - -namespace OpenSim.Region.SimulatorServices -{ - public class RegionAssetService : IRegionModule - { - private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - private static bool initialized = false; - private static bool enabled = false; - - private bool m_gridMode = false; - Scene m_scene; - - #region IRegionModule interface - - public void Initialise(Scene scene, IConfigSource config) - { - if (!initialized) - { - initialized = true; - m_scene = scene; - - // This module is only on for standalones in hypergrid mode - enabled = ((!config.Configs["Startup"].GetBoolean("gridmode", true)) && - config.Configs["Startup"].GetBoolean("hypergrid", true)) || - ((config.Configs["MXP"] != null) && config.Configs["MXP"].GetBoolean("Enabled", true)); - m_gridMode = config.Configs["Startup"].GetBoolean("gridmode", true); - } - } - - public void PostInitialise() - { - if (enabled) - { - m_log.Info("[RegionAssetService]: Starting..."); - - new AssetService(m_scene,m_gridMode); - } - } - - public void Close() - { - } - - public string Name - { - get { return "RegionAssetService"; } - } - - public bool IsSharedModule - { - get { return true; } - } - - #endregion - - } - - public class AssetService - { - private bool m_doLookup = false; - private bool m_gridMode = false; - - public bool DoLookup - { - get { return m_doLookup; } - set { m_doLookup = value; } - } -// private static readonly ILog m_log -// = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - public AssetService(Scene m_scene, bool gridMode) - { - m_gridMode = gridMode; - AddHttpHandlers(m_scene); - } - - protected void AddHttpHandlers(Scene m_scene) - { - IHttpServer httpServer = m_scene.CommsManager.HttpServer; - - httpServer.AddStreamHandler(new AssetServerGetHandler(m_scene.AssetService)); - httpServer.AddStreamHandler(new AssetServerPostHandler(m_scene.AssetService)); - httpServer.AddStreamHandler(new AssetServerDeleteHandler(m_scene.AssetService)); - - - } - } -} +/* + * 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 OpenSim 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.Reflection; +using log4net; +using Nini.Config; +using OpenSim.Framework; +using OpenSim.Framework.Servers.HttpServer; +using OpenSim.Region.Framework.Scenes; +using OpenSim.Region.Framework.Interfaces; +using OpenSim.Servers.AssetServer.Handlers; + +namespace OpenSim.Region.SimulatorServices +{ + public class RegionAssetService : IRegionModule + { + private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + private static bool initialized = false; + private static bool enabled = false; + + private bool m_gridMode = false; + Scene m_scene; + + #region IRegionModule interface + + public void Initialise(Scene scene, IConfigSource config) + { + if (!initialized) + { + initialized = true; + m_scene = scene; + + // This module is only on for standalones in hypergrid mode + enabled = ((!config.Configs["Startup"].GetBoolean("gridmode", true)) && + config.Configs["Startup"].GetBoolean("hypergrid", true)) || + ((config.Configs["MXP"] != null) && config.Configs["MXP"].GetBoolean("Enabled", true)); + m_gridMode = config.Configs["Startup"].GetBoolean("gridmode", true); + } + } + + public void PostInitialise() + { + if (enabled) + { + m_log.Info("[RegionAssetService]: Starting..."); + + new AssetService(m_scene,m_gridMode); + } + } + + public void Close() + { + } + + public string Name + { + get { return "RegionAssetService"; } + } + + public bool IsSharedModule + { + get { return true; } + } + + #endregion + + } + + public class AssetService + { + private bool m_doLookup = false; + private bool m_gridMode = false; + + public bool DoLookup + { + get { return m_doLookup; } + set { m_doLookup = value; } + } +// private static readonly ILog m_log +// = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + public AssetService(Scene m_scene, bool gridMode) + { + m_gridMode = gridMode; + AddHttpHandlers(m_scene); + } + + protected void AddHttpHandlers(Scene m_scene) + { + IHttpServer httpServer = m_scene.CommsManager.HttpServer; + + httpServer.AddStreamHandler(new AssetServerGetHandler(m_scene.AssetService)); + httpServer.AddStreamHandler(new AssetServerPostHandler(m_scene.AssetService)); + httpServer.AddStreamHandler(new AssetServerDeleteHandler(m_scene.AssetService)); + + + } + } +} diff --git a/OpenSim/Tests/Common/Mock/BaseAssetRepository.cs b/OpenSim/Tests/Common/Mock/BaseAssetRepository.cs index acfe4fe25d..b284abcc67 100644 --- a/OpenSim/Tests/Common/Mock/BaseAssetRepository.cs +++ b/OpenSim/Tests/Common/Mock/BaseAssetRepository.cs @@ -1,34 +1,34 @@ -using System.Collections.Generic; -using OpenMetaverse; -using OpenSim.Framework; - -namespace OpenSim.Tests.Common.Mock -{ - public class BaseAssetRepository - { - protected Dictionary Assets = new Dictionary(); - - public AssetBase FetchAsset(UUID uuid) - { - if (ExistsAsset(uuid)) - return Assets[uuid]; - else - return null; - } - - public void CreateAsset(AssetBase asset) - { - Assets[asset.FullID] = asset; - } - - public void UpdateAsset(AssetBase asset) - { - CreateAsset(asset); - } - - public bool ExistsAsset(UUID uuid) - { - return Assets.ContainsKey(uuid); - } - } +using System.Collections.Generic; +using OpenMetaverse; +using OpenSim.Framework; + +namespace OpenSim.Tests.Common.Mock +{ + public class BaseAssetRepository + { + protected Dictionary Assets = new Dictionary(); + + public AssetBase FetchAsset(UUID uuid) + { + if (ExistsAsset(uuid)) + return Assets[uuid]; + else + return null; + } + + public void CreateAsset(AssetBase asset) + { + Assets[asset.FullID] = asset; + } + + public void UpdateAsset(AssetBase asset) + { + CreateAsset(asset); + } + + public bool ExistsAsset(UUID uuid) + { + return Assets.ContainsKey(uuid); + } + } } \ No newline at end of file diff --git a/OpenSim/Tests/Common/Mock/TestAssetCache.cs b/OpenSim/Tests/Common/Mock/TestAssetCache.cs index d6217635e1..a9949bbdc4 100644 --- a/OpenSim/Tests/Common/Mock/TestAssetCache.cs +++ b/OpenSim/Tests/Common/Mock/TestAssetCache.cs @@ -1,92 +1,92 @@ -using System; -using System.Collections.Generic; -using System.Text; -using OpenMetaverse; -using OpenMetaverse.Packets; -using OpenSim.Framework; - -namespace OpenSim.Tests.Common.Mock -{ - public class TestAssetCache : BaseAssetRepository, IAssetCache - { - public void AssetReceived(AssetBase asset, bool IsTexture) - { - throw new NotImplementedException(); - } - - public void AssetNotFound(UUID assetID, bool IsTexture) - { - throw new NotImplementedException(); - } - - public void Dispose() - { - throw new NotImplementedException(); - } - - public string Version - { - get { throw new NotImplementedException(); } - } - - public string Name - { - get { throw new NotImplementedException(); } - } - - public void Initialise() - { - throw new NotImplementedException(); - } - - public IAssetServer AssetServer - { - get { throw new NotImplementedException(); } - } - - public void Initialise(ConfigSettings cs, IAssetServer server) - { - throw new NotImplementedException(); - } - - public void ShowState() - { - throw new NotImplementedException(); - } - - public void Clear() - { - throw new NotImplementedException(); - } - - public bool TryGetCachedAsset(UUID assetID, out AssetBase asset) - { - throw new NotImplementedException(); - } - - public void GetAsset(UUID assetID, AssetRequestCallback callback, bool isTexture) - { - throw new NotImplementedException(); - } - - public AssetBase GetAsset(UUID assetID, bool isTexture) - { - return FetchAsset(assetID); - } - - public void AddAsset(AssetBase asset) - { - CreateAsset( asset ); - } - - public void ExpireAsset(UUID assetID) - { - throw new NotImplementedException(); - } - - public void AddAssetRequest(IClientAPI userInfo, TransferRequestPacket transferRequest) - { - throw new NotImplementedException(); - } - } -} +using System; +using System.Collections.Generic; +using System.Text; +using OpenMetaverse; +using OpenMetaverse.Packets; +using OpenSim.Framework; + +namespace OpenSim.Tests.Common.Mock +{ + public class TestAssetCache : BaseAssetRepository, IAssetCache + { + public void AssetReceived(AssetBase asset, bool IsTexture) + { + throw new NotImplementedException(); + } + + public void AssetNotFound(UUID assetID, bool IsTexture) + { + throw new NotImplementedException(); + } + + public void Dispose() + { + throw new NotImplementedException(); + } + + public string Version + { + get { throw new NotImplementedException(); } + } + + public string Name + { + get { throw new NotImplementedException(); } + } + + public void Initialise() + { + throw new NotImplementedException(); + } + + public IAssetServer AssetServer + { + get { throw new NotImplementedException(); } + } + + public void Initialise(ConfigSettings cs, IAssetServer server) + { + throw new NotImplementedException(); + } + + public void ShowState() + { + throw new NotImplementedException(); + } + + public void Clear() + { + throw new NotImplementedException(); + } + + public bool TryGetCachedAsset(UUID assetID, out AssetBase asset) + { + throw new NotImplementedException(); + } + + public void GetAsset(UUID assetID, AssetRequestCallback callback, bool isTexture) + { + throw new NotImplementedException(); + } + + public AssetBase GetAsset(UUID assetID, bool isTexture) + { + return FetchAsset(assetID); + } + + public void AddAsset(AssetBase asset) + { + CreateAsset( asset ); + } + + public void ExpireAsset(UUID assetID) + { + throw new NotImplementedException(); + } + + public void AddAssetRequest(IClientAPI userInfo, TransferRequestPacket transferRequest) + { + throw new NotImplementedException(); + } + } +} diff --git a/OpenSim/Tests/Common/Mock/TestAssetService.cs b/OpenSim/Tests/Common/Mock/TestAssetService.cs index 23a1137362..91ea9211f6 100644 --- a/OpenSim/Tests/Common/Mock/TestAssetService.cs +++ b/OpenSim/Tests/Common/Mock/TestAssetService.cs @@ -1,78 +1,78 @@ -/* - * 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 OpenSim 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.Generic; -using OpenMetaverse; -using OpenSim.Framework; -using OpenSim.Data; -using OpenSim.Services.Interfaces; - -namespace OpenSim.Tests.Common.Mock -{ - public class TestAssetService : IAssetService - { - private readonly Dictionary Assets = new Dictionary(); - - public AssetBase Get(string id) - { - return Assets[ id ]; - } - - public AssetMetadata GetMetadata(string id) - { - throw new System.NotImplementedException(); - } - - public byte[] GetData(string id) - { - throw new System.NotImplementedException(); - } - - public bool Get(string id, object sender, AssetRetrieved handler) - { - throw new NotImplementedException(); - } - - public string Store(AssetBase asset) - { - Assets[asset.ID] = asset; - - return asset.ID; - } - - public bool UpdateContent(string id, byte[] data) - { - throw new System.NotImplementedException(); - } - - public bool Delete(string id) - { - throw new System.NotImplementedException(); - } - } +/* + * 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 OpenSim 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.Generic; +using OpenMetaverse; +using OpenSim.Framework; +using OpenSim.Data; +using OpenSim.Services.Interfaces; + +namespace OpenSim.Tests.Common.Mock +{ + public class TestAssetService : IAssetService + { + private readonly Dictionary Assets = new Dictionary(); + + public AssetBase Get(string id) + { + return Assets[ id ]; + } + + public AssetMetadata GetMetadata(string id) + { + throw new System.NotImplementedException(); + } + + public byte[] GetData(string id) + { + throw new System.NotImplementedException(); + } + + public bool Get(string id, object sender, AssetRetrieved handler) + { + throw new NotImplementedException(); + } + + public string Store(AssetBase asset) + { + Assets[asset.ID] = asset; + + return asset.ID; + } + + public bool UpdateContent(string id, byte[] data) + { + throw new System.NotImplementedException(); + } + + public bool Delete(string id) + { + throw new System.NotImplementedException(); + } + } } \ No newline at end of file diff --git a/OpenSim/Tests/Common/Mock/TestOSHttpResponse.cs b/OpenSim/Tests/Common/Mock/TestOSHttpResponse.cs index 9e097b88f7..59d40007d5 100644 --- a/OpenSim/Tests/Common/Mock/TestOSHttpResponse.cs +++ b/OpenSim/Tests/Common/Mock/TestOSHttpResponse.cs @@ -1,24 +1,24 @@ -using System; -using System.Collections.Generic; -using System.Text; -using OpenSim.Framework.Servers.HttpServer; - -namespace OpenSim.Tests.Common.Mock -{ - public class TestOSHttpResponse : OSHttpResponse - { - private int m_statusCode; - public override int StatusCode - { - get { return m_statusCode; } - set { m_statusCode = value; } - } - - private string m_contentType; - public override string ContentType - { - get { return m_contentType; } - set { m_contentType = value; } - } - } -} +using System; +using System.Collections.Generic; +using System.Text; +using OpenSim.Framework.Servers.HttpServer; + +namespace OpenSim.Tests.Common.Mock +{ + public class TestOSHttpResponse : OSHttpResponse + { + private int m_statusCode; + public override int StatusCode + { + get { return m_statusCode; } + set { m_statusCode = value; } + } + + private string m_contentType; + public override string ContentType + { + get { return m_contentType; } + set { m_contentType = value; } + } + } +} diff --git a/OpenSim/Tests/Common/Setup/GetAssetStreamHandlerTestHelpers.cs b/OpenSim/Tests/Common/Setup/GetAssetStreamHandlerTestHelpers.cs index 593beae061..26851d67e2 100644 --- a/OpenSim/Tests/Common/Setup/GetAssetStreamHandlerTestHelpers.cs +++ b/OpenSim/Tests/Common/Setup/GetAssetStreamHandlerTestHelpers.cs @@ -1,64 +1,64 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Net; -using System.Text; -using System.Xml; -using System.Xml.Serialization; -using NUnit.Framework; -using OpenSim.Framework; -using OpenSim.Framework.Servers; -using OpenSim.Framework.Servers.HttpServer; -using OpenSim.Tests.Common.Mock; - -namespace OpenSim.Tests.Common.Setup -{ - public class GetAssetStreamHandlerTestHelpers - { - public static void BaseFetchExistingAssetXmlTest(AssetBase asset, BaseGetAssetStreamHandler handler, OSHttpResponse response) - { - byte[] expected = BaseGetAssetStreamHandler.GetXml(asset); - - byte[] actual = handler.Handle("/assets/" + asset.ID , null, null, response); - - Assert.Greater(actual.Length, 10, "Too short xml on fetching xml without trailing slash."); - Assert.AreEqual(expected, actual, "Failed on fetching xml without trailing slash."); - // Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode, "Wrong http response code on first fetch."); - - byte[] actual1 = handler.Handle("/assets/" + asset.ID + "/", null, null, response); - Assert.Greater(actual1.Length, 10, "Too short xml on fetching xml with trailing slash."); - Assert.AreEqual(expected, actual1, "Failed on fetching xml with trailing slash."); - // Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode, "Wrong http response code on second fetch."); - } - - public static void BaseFetchExistingAssetDataTest(AssetBase asset, BaseGetAssetStreamHandler handler, OSHttpResponse response) - { - Assert.AreEqual(asset.Data, handler.Handle("/assets/" + asset.ID + "/data", null, null, response), "Failed on fetching data without trailing slash."); - Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode, "Wrong http response code on first fetch."); - - Assert.AreEqual(asset.Data, handler.Handle("/assets/" + asset.ID + "/data/", null, null, response), "Failed on fetching data with trailing slash."); - Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode, "Wrong http response code on second fetch."); - } - - public static AssetBase CreateCommonTestResources(out OSHttpResponse response) - { - AssetBase asset = CreateTestAsset(); - response = new TestOSHttpResponse(); - return asset; - } - - public static AssetBase CreateTestAsset() - { - byte[] expected = new byte[] { 1,2,3 }; - AssetBase asset = new AssetBase( ); - asset.ID = Guid.NewGuid().ToString(); - asset.Data = expected; - return asset; - } - - public static void BaseFetchMissingAsset(BaseGetAssetStreamHandler handler) - { - Assert.AreEqual(BaseRequestHandlerTestHelper.EmptyByteArray, handler.Handle("/assets/" + Guid.NewGuid(), null, null, null), "Failed on bad guid."); - } - } -} +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Text; +using System.Xml; +using System.Xml.Serialization; +using NUnit.Framework; +using OpenSim.Framework; +using OpenSim.Framework.Servers; +using OpenSim.Framework.Servers.HttpServer; +using OpenSim.Tests.Common.Mock; + +namespace OpenSim.Tests.Common.Setup +{ + public class GetAssetStreamHandlerTestHelpers + { + public static void BaseFetchExistingAssetXmlTest(AssetBase asset, BaseGetAssetStreamHandler handler, OSHttpResponse response) + { + byte[] expected = BaseGetAssetStreamHandler.GetXml(asset); + + byte[] actual = handler.Handle("/assets/" + asset.ID , null, null, response); + + Assert.Greater(actual.Length, 10, "Too short xml on fetching xml without trailing slash."); + Assert.AreEqual(expected, actual, "Failed on fetching xml without trailing slash."); + // Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode, "Wrong http response code on first fetch."); + + byte[] actual1 = handler.Handle("/assets/" + asset.ID + "/", null, null, response); + Assert.Greater(actual1.Length, 10, "Too short xml on fetching xml with trailing slash."); + Assert.AreEqual(expected, actual1, "Failed on fetching xml with trailing slash."); + // Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode, "Wrong http response code on second fetch."); + } + + public static void BaseFetchExistingAssetDataTest(AssetBase asset, BaseGetAssetStreamHandler handler, OSHttpResponse response) + { + Assert.AreEqual(asset.Data, handler.Handle("/assets/" + asset.ID + "/data", null, null, response), "Failed on fetching data without trailing slash."); + Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode, "Wrong http response code on first fetch."); + + Assert.AreEqual(asset.Data, handler.Handle("/assets/" + asset.ID + "/data/", null, null, response), "Failed on fetching data with trailing slash."); + Assert.AreEqual((int)HttpStatusCode.OK, response.StatusCode, "Wrong http response code on second fetch."); + } + + public static AssetBase CreateCommonTestResources(out OSHttpResponse response) + { + AssetBase asset = CreateTestAsset(); + response = new TestOSHttpResponse(); + return asset; + } + + public static AssetBase CreateTestAsset() + { + byte[] expected = new byte[] { 1,2,3 }; + AssetBase asset = new AssetBase( ); + asset.ID = Guid.NewGuid().ToString(); + asset.Data = expected; + return asset; + } + + public static void BaseFetchMissingAsset(BaseGetAssetStreamHandler handler) + { + Assert.AreEqual(BaseRequestHandlerTestHelper.EmptyByteArray, handler.Handle("/assets/" + Guid.NewGuid(), null, null, null), "Failed on bad guid."); + } + } +}