Merge branch 'master' of git://opensimulator.org/git/opensim into dev
Conflicts: OpenSim/Region/CoreModules/World/Media/Moap/MoapModule.csdsg
						commit
						b1114dcb98
					
				|  | @ -250,7 +250,7 @@ namespace OpenSim.Framework | |||
|         { | ||||
|             get | ||||
|             { | ||||
|                 //m_log.DebugFormat("[SHAPE]: get m_textureEntry length {0}", m_textureEntry.Length); | ||||
| //                m_log.DebugFormat("[SHAPE]: get m_textureEntry length {0}", m_textureEntry.Length); | ||||
|                 try { return new Primitive.TextureEntry(m_textureEntry, 0, m_textureEntry.Length); } | ||||
|                 catch { } | ||||
| 
 | ||||
|  |  | |||
|  | @ -53,9 +53,14 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
|     public class InventoryArchiverTests | ||||
|     { | ||||
|         protected ManualResetEvent mre = new ManualResetEvent(false); | ||||
|          | ||||
|       | ||||
|         /// <summary> | ||||
|         /// Stream of data representing a common IAR that can be reused in load tests. | ||||
|         /// A raw array of bytes that we'll use to create an IAR memory stream suitable for isolated use in each test. | ||||
|         /// </summary> | ||||
|         protected byte[] m_iarStreamBytes; | ||||
|                  | ||||
|         /// <summary> | ||||
|         /// Stream of data representing a common IAR for load tests. | ||||
|         /// </summary> | ||||
|         protected MemoryStream m_iarStream; | ||||
|          | ||||
|  | @ -79,12 +84,18 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
|         } | ||||
|          | ||||
|         [SetUp] | ||||
|         public void Init() | ||||
|         public void SetUp() | ||||
|         { | ||||
|             ConstructDefaultIarForTestLoad(); | ||||
|             m_iarStream = new MemoryStream(m_iarStreamBytes); | ||||
|         } | ||||
|          | ||||
|         protected void ConstructDefaultIarForTestLoad() | ||||
|         [TestFixtureSetUp] | ||||
|         public void FixtureSetup() | ||||
|         { | ||||
|             ConstructDefaultIarBytesForTestLoad(); | ||||
|         } | ||||
|          | ||||
|         protected void ConstructDefaultIarBytesForTestLoad() | ||||
|         { | ||||
|             string archiveItemName = InventoryArchiveWriteRequest.CreateArchiveItemName(m_item1Name, UUID.Random()); | ||||
| 
 | ||||
|  | @ -107,7 +118,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
|                 = string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName); | ||||
|             tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1, new Dictionary<string, object>(), scene.UserAccountService)); | ||||
|             tar.Close(); | ||||
|             m_iarStream = new MemoryStream(archiveWriteStream.ToArray()); | ||||
|             m_iarStreamBytes = archiveWriteStream.ToArray(); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|  | @ -392,8 +403,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests | |||
|             UserProfileTestUtils.CreateUserWithInventory(scene, m_ua1, "meowfood"); | ||||
|             UserProfileTestUtils.CreateUserWithInventory(scene, m_ua2, "hampshire"); | ||||
|              | ||||
|             archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream); | ||||
| 
 | ||||
|             archiverModule.DearchiveInventory(m_ua1.FirstName, m_ua1.LastName, "/", "meowfood", m_iarStream);             | ||||
|             InventoryItemBase foundItem1 | ||||
|                 = InventoryArchiveUtils.FindItemByPath(scene.InventoryService, m_ua1.PrincipalID, m_item1Name); | ||||
|              | ||||
|  |  | |||
|  | @ -192,15 +192,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
|                 return false; | ||||
| 
 | ||||
|             // Try local first | ||||
|             if (m_localBackend.UpdateAgent(destination, cAgentData)) | ||||
|                 return true; | ||||
| 
 | ||||
|             // else do the remote thing | ||||
|             if (!m_localBackend.IsLocalRegion(destination.RegionHandle)) | ||||
|                 return m_remoteConnector.UpdateAgent(destination, cAgentData); | ||||
| 
 | ||||
|             return false; | ||||
|             if (m_localBackend.IsLocalRegion(destination.RegionHandle)) | ||||
|                 return m_localBackend.UpdateAgent(destination, cAgentData); | ||||
| 
 | ||||
|             return m_remoteConnector.UpdateAgent(destination, cAgentData); | ||||
|         } | ||||
| 
 | ||||
|         public bool UpdateAgent(GridRegion destination, AgentPosition cAgentData) | ||||
|  | @ -210,15 +205,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
|                 return false; | ||||
| 
 | ||||
|             // Try local first | ||||
|             if (m_localBackend.UpdateAgent(destination, cAgentData)) | ||||
|                 return true; | ||||
| 
 | ||||
|             // else do the remote thing | ||||
|             if (!m_localBackend.IsLocalRegion(destination.RegionHandle)) | ||||
|                 return m_remoteConnector.UpdateAgent(destination, cAgentData); | ||||
| 
 | ||||
|             return false; | ||||
|             if (m_localBackend.IsLocalRegion(destination.RegionHandle)) | ||||
|                 return m_localBackend.UpdateAgent(destination, cAgentData); | ||||
| 
 | ||||
|             return m_remoteConnector.UpdateAgent(destination, cAgentData); | ||||
|         } | ||||
| 
 | ||||
|         public bool RetrieveAgent(GridRegion destination, UUID id, out IAgentData agent) | ||||
|  |  | |||
|  | @ -50,7 +50,7 @@ using Caps = OpenSim.Framework.Capabilities.Caps; | |||
| using OSDArray = OpenMetaverse.StructuredData.OSDArray; | ||||
| using OSDMap = OpenMetaverse.StructuredData.OSDMap; | ||||
| 
 | ||||
| namespace OpenSim.Region.CoreModules.Media.Moap | ||||
| namespace OpenSim.Region.CoreModules.World.Media.Moap | ||||
| { | ||||
|     [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MoapModule")] | ||||
|     public class MoapModule : INonSharedRegionModule, IMoapModule | ||||
|  | @ -225,25 +225,63 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
|             return me; | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Set the media entry on the face of the given part. | ||||
|         /// </summary> | ||||
|         /// <param name="part">/param> | ||||
|         /// <param name="face"></param> | ||||
|         /// <param name="me">If null, then the media entry is cleared.</param> | ||||
|         public void SetMediaEntry(SceneObjectPart part, int face, MediaEntry me) | ||||
|         { | ||||
| //            m_log.DebugFormat("[MOAP]: SetMediaEntry for {0}, face {1}", part.Name, face); | ||||
|              | ||||
|             CheckFaceParam(part, face); | ||||
|              | ||||
|             if (null == part.Shape.Media) | ||||
|                 part.Shape.Media = new PrimitiveBaseShape.MediaList(new MediaEntry[part.GetNumberOfSides()]); | ||||
|                  | ||||
|             { | ||||
|                 if (me == null) | ||||
|                     return; | ||||
|                 else                             | ||||
|                     part.Shape.Media = new PrimitiveBaseShape.MediaList(new MediaEntry[part.GetNumberOfSides()]); | ||||
|             } | ||||
| 
 | ||||
|             lock (part.Shape.Media) | ||||
|                 part.Shape.Media[face] = me; | ||||
|                 part.Shape.Media[face] = me;                       | ||||
|              | ||||
|             UpdateMediaUrl(part, UUID.Zero); | ||||
| 
 | ||||
|             SetPartMediaFlags(part, face, me != null); | ||||
|             //part.ScheduleFullUpdate(); | ||||
|             part.ScheduleFullUpdate(new List<SceneObjectPartProperties>(){SceneObjectPartProperties.MediaUrl}); | ||||
| 
 | ||||
|             part.TriggerScriptChangedEvent(Changed.MEDIA); | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Clear the media entry from the face of the given part. | ||||
|         /// </summary> | ||||
|         /// <param name="part"></param> | ||||
|         /// <param name="face"></param> | ||||
|         public void ClearMediaEntry(SceneObjectPart part, int face) | ||||
|         { | ||||
|             SetMediaEntry(part, face, null); | ||||
|             SetMediaEntry(part, face, null);             | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|         /// Set the media flags on the texture face of the given part. | ||||
|         /// </summary> | ||||
|         /// <remarks> | ||||
|         /// The fact that we need a separate function to do what should be a simple one line operation is BUTT UGLY. | ||||
|         /// </remarks> | ||||
|         /// <param name="part"></param> | ||||
|         /// <param name="face"></param> | ||||
|         /// <param name="flag"></param> | ||||
|         protected void SetPartMediaFlags(SceneObjectPart part, int face, bool flag) | ||||
|         { | ||||
|             Primitive.TextureEntry te = part.Shape.Textures; | ||||
|             Primitive.TextureEntryFace teFace = te.CreateFace((uint)face); | ||||
|             teFace.MediaFlags = flag; | ||||
|             part.Shape.Textures = te;             | ||||
|         } | ||||
|          | ||||
|         /// <summary> | ||||
|  | @ -334,7 +372,7 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
|             } | ||||
|              | ||||
| //            m_log.DebugFormat("[MOAP]: Received {0} media entries for prim {1}", omu.FaceMedia.Length, primId); | ||||
|                         | ||||
| //                        | ||||
| //            for (int i = 0; i < omu.FaceMedia.Length; i++) | ||||
| //            { | ||||
| //                MediaEntry me = omu.FaceMedia[i]; | ||||
|  | @ -369,10 +407,7 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
|                         // FIXME: Race condition here since some other texture entry manipulator may overwrite/get | ||||
|                         // overwritten.  Unfortunately, PrimitiveBaseShape does not allow us to change texture entry | ||||
|                         // directly. | ||||
|                         Primitive.TextureEntry te = part.Shape.Textures; | ||||
|                         Primitive.TextureEntryFace face = te.CreateFace((uint)i); | ||||
|                         face.MediaFlags = true; | ||||
|                         part.Shape.Textures = te; | ||||
|                         SetPartMediaFlags(part, i, true); | ||||
| //                        m_log.DebugFormat( | ||||
| //                            "[MOAP]: Media flags for face {0} is {1}",  | ||||
| //                            i, part.Shape.Textures.FaceTextures[i].MediaFlags); | ||||
|  | @ -381,6 +416,8 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
|             } | ||||
|             else | ||||
|             { | ||||
| //                m_log.DebugFormat("[MOAP]: Setting existing media list for {0}", part.Name); | ||||
|                  | ||||
|                 // We need to go through the media textures one at a time to make sure that we have permission  | ||||
|                 // to change them | ||||
|                  | ||||
|  | @ -402,8 +439,7 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
|                             if (null == media[i]) | ||||
|                                 continue; | ||||
|                              | ||||
|                             Primitive.TextureEntryFace face = te.CreateFace((uint)i); | ||||
|                             face.MediaFlags = true; | ||||
|                             SetPartMediaFlags(part, i, true); | ||||
|      | ||||
|     //                        m_log.DebugFormat( | ||||
|     //                            "[MOAP]: Media flags for face {0} is {1}",  | ||||
|  | @ -596,4 +632,4 @@ namespace OpenSim.Region.CoreModules.Media.Moap | |||
|             return false; | ||||
|         } | ||||
|     } | ||||
| } | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,103 @@ | |||
| /* | ||||
|  * 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.Generic; | ||||
| using System.IO; | ||||
| using System.Reflection; | ||||
| using System.Threading; | ||||
| using log4net.Config; | ||||
| using NUnit.Framework; | ||||
| using NUnit.Framework.SyntaxHelpers; | ||||
| using OpenMetaverse; | ||||
| using OpenMetaverse.Assets; | ||||
| using OpenSim.Framework; | ||||
| using OpenSim.Region.CoreModules.World.Media.Moap; | ||||
| using OpenSim.Region.Framework.Scenes; | ||||
| using OpenSim.Region.Framework.Scenes.Serialization; | ||||
| using OpenSim.Tests.Common; | ||||
| using OpenSim.Tests.Common.Mock; | ||||
| using OpenSim.Tests.Common.Setup; | ||||
| 
 | ||||
| namespace OpenSim.Region.CoreModules.World.Media.Moap.Tests | ||||
| { | ||||
|     [TestFixture] | ||||
|     public class MoapTests | ||||
|     { | ||||
|         protected TestScene m_scene; | ||||
|         protected MoapModule m_module; | ||||
|              | ||||
|         [SetUp] | ||||
|         public void SetUp() | ||||
|         { | ||||
|             m_module = new MoapModule(); | ||||
|             m_scene = SceneSetupHelpers.SetupScene(); | ||||
|             SceneSetupHelpers.SetupSceneModules(m_scene, m_module);             | ||||
|         }         | ||||
|          | ||||
|         [Test] | ||||
|         public void TestClearMediaUrl() | ||||
|         { | ||||
|             TestHelper.InMethod();            | ||||
| //            log4net.Config.XmlConfigurator.Configure(); | ||||
|              | ||||
|             SceneObjectPart part = SceneSetupHelpers.AddSceneObject(m_scene); | ||||
|             MediaEntry me = new MediaEntry();             | ||||
|              | ||||
|             m_module.SetMediaEntry(part, 1, me); | ||||
|             m_module.ClearMediaEntry(part, 1); | ||||
|              | ||||
|             Assert.That(part.Shape.Media[1], Is.EqualTo(null)); | ||||
|              | ||||
|             // Although we've cleared one face, other faces may still be present.  So we need to check for an | ||||
|             // update media url version | ||||
|             Assert.That(part.MediaUrl, Is.EqualTo("x-mv:0000000001/" + UUID.Zero)); | ||||
|              | ||||
|             // By changing media flag to false, the face texture once again becomes identical to the DefaultTexture. | ||||
|             // Therefore, when libOMV reserializes it, it disappears and we are left with no face texture in this slot. | ||||
|             // Not at all confusing, eh? | ||||
|             Assert.That(part.Shape.Textures.FaceTextures[1], Is.Null); | ||||
|         } | ||||
|          | ||||
|         [Test] | ||||
|         public void TestSetMediaUrl() | ||||
|         { | ||||
|             TestHelper.InMethod(); | ||||
|              | ||||
|             string homeUrl = "opensimulator.org";             | ||||
|              | ||||
|             SceneObjectPart part = SceneSetupHelpers.AddSceneObject(m_scene); | ||||
|             MediaEntry me = new MediaEntry() { HomeURL = homeUrl };             | ||||
|              | ||||
|             m_module.SetMediaEntry(part, 1, me); | ||||
|              | ||||
|             Assert.That(part.Shape.Media[1].HomeURL, Is.EqualTo(homeUrl)); | ||||
|             Assert.That(part.MediaUrl, Is.EqualTo("x-mv:0000000000/" + UUID.Zero)); | ||||
|             Assert.That(part.Shape.Textures.FaceTextures[1].MediaFlags, Is.True); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -51,7 +51,7 @@ namespace OpenSim.Region.CoreModules.UDP.Linden | |||
|     [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "LindenUDPInfoModule")] | ||||
|     public class LindenUDPInfoModule : ISharedRegionModule | ||||
|     { | ||||
|         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);                 | ||||
| //        private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);                 | ||||
|          | ||||
|         protected Dictionary<UUID, Scene> m_scenes = new Dictionary<UUID, Scene>(); | ||||
|          | ||||
|  |  | |||
|  | @ -92,7 +92,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
|         private static string m_freeSwitchUrlResetPassword; | ||||
|         private uint m_freeSwitchServicePort; | ||||
|         private string m_openSimWellKnownHTTPAddress; | ||||
|         private string m_freeSwitchContext; | ||||
| //        private string m_freeSwitchContext; | ||||
| 
 | ||||
|         private readonly Dictionary<string, string> m_UUIDName = new Dictionary<string, string>(); | ||||
|         private Dictionary<string, string> m_ParcelAddress = new Dictionary<string, string>(); | ||||
|  | @ -144,7 +144,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
|                 m_freeSwitchDefaultWellKnownIP = map["DefaultWellKnownIP"].AsString(); | ||||
|                 m_freeSwitchDefaultTimeout = map["DefaultTimeout"].AsInteger(); | ||||
|                 m_freeSwitchUrlResetPassword = String.Empty; | ||||
|                 m_freeSwitchContext = map["Context"].AsString(); | ||||
| //                m_freeSwitchContext = map["Context"].AsString(); | ||||
| 
 | ||||
|                 if (String.IsNullOrEmpty(m_freeSwitchRealm) || | ||||
|                     String.IsNullOrEmpty(m_freeSwitchAPIPrefix)) | ||||
|  | @ -662,7 +662,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
|             resp.Append("</buddies><groups></groups></body></level0></response>"); | ||||
| 
 | ||||
|             response["str_response_string"] = resp.ToString(); | ||||
|             Regex normalizeEndLines = new Regex(@"\r\n", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline); | ||||
| //            Regex normalizeEndLines = new Regex(@"\r\n", RegexOptions.Compiled | RegexOptions.Singleline | RegexOptions.Multiline); | ||||
| 
 | ||||
|             //m_log.DebugFormat("[FREESWITCH]: {0}", normalizeEndLines.Replace((string)response["str_response_string"],"")); | ||||
|             return response; | ||||
|  | @ -671,9 +671,9 @@ namespace OpenSim.Region.OptionalModules.Avatar.Voice.FreeSwitchVoice | |||
|         public Hashtable FreeSwitchSLVoiceSigninHTTPHandler(Hashtable request) | ||||
|         { | ||||
|             m_log.Debug("[FreeSwitchVoice] FreeSwitchSLVoiceSigninHTTPHandler called"); | ||||
|             string requestbody = (string)request["body"]; | ||||
|             string uri = (string)request["uri"]; | ||||
|             string contenttype = (string)request["content-type"]; | ||||
| //            string requestbody = (string)request["body"]; | ||||
| //            string uri = (string)request["uri"]; | ||||
| //            string contenttype = (string)request["content-type"]; | ||||
| 
 | ||||
|             Hashtable requestBody = ParseRequestBody((string)request["body"]); | ||||
| 
 | ||||
|  |  | |||
|  | @ -712,7 +712,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups | |||
|             if (m_debugEnabled) m_log.InfoFormat("[SIMIAN-GROUPS-CONNECTOR]  {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); | ||||
| 
 | ||||
|             GroupMembershipData data = null; | ||||
|             bool foundData = false; | ||||
| //            bool foundData = false; | ||||
| 
 | ||||
|             OSDMap UserGroupMemberInfo; | ||||
|             if (SimianGetGenericEntry(agentID, "GroupMember", groupID.ToString(), out UserGroupMemberInfo)) | ||||
|  |  | |||
|  | @ -2962,6 +2962,7 @@ | |||
|         <Match path="Avatar/Inventory/Archiver/Tests" pattern="*.cs" recurse="true"/> | ||||
|         <Match path="World/Archiver/Tests" pattern="*.cs" recurse="true"/> | ||||
|         <Match buildAction="EmbeddedResource" path="World/Archiver/Tests/Resources" pattern="*"/> | ||||
|         <Match path="World/Media/Moap/Tests" pattern="*.cs" recurse="true"/> | ||||
|         <Match path="World/Serialiser/Tests" pattern="*.cs" recurse="true"/> | ||||
|         <Match path="World/Terrain/Tests" pattern="*.cs" recurse="true"/> | ||||
|         <Match path="ServiceConnectorsOut/Grid/Tests" pattern="*.cs" recurse="true"/> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Dan Lake
						Dan Lake