Merge branch 'master' into careminster
						commit
						d3e7a52933
					
				|  | @ -86,6 +86,7 @@ what it is today. | |||
| * Kevin Cozens | ||||
| * kinoc (Daxtron Labs) | ||||
| * Kitto Flora | ||||
| * KittyLiu | ||||
| * Kurt Taylor (IBM) | ||||
| * lulurun  | ||||
| * M.Igarashi | ||||
|  | @ -104,6 +105,7 @@ what it is today. | |||
| * otakup0pe | ||||
| * ralphos | ||||
| * RemedyTomm | ||||
| * Revolution | ||||
| * Richard Alimi (IBM) | ||||
| * Rick Alther (IBM) | ||||
| * Rob Smart (IBM) | ||||
|  |  | |||
|  | @ -154,13 +154,14 @@ namespace OpenSim.Data.Tests | |||
|                 ); | ||||
|         } | ||||
| 
 | ||||
|         //[Test] | ||||
|         // Currently fails occasionally | ||||
|         [Test] | ||||
|         public void T012_EstateSettingsRandomStorage() | ||||
|         { | ||||
|             // Letting estate store generate rows to database for us | ||||
|             EstateSettings originalSettings = db.LoadEstateSettings(REGION_ID); | ||||
|             new PropertyScrambler<EstateSettings>().Scramble(originalSettings); | ||||
|             new PropertyScrambler<EstateSettings>() | ||||
|                 .DontScramble(x=>x.EstateID) | ||||
|                 .Scramble(originalSettings); | ||||
| 
 | ||||
|             // Saving settings. | ||||
|             db.StoreEstateSettings(originalSettings); | ||||
|  |  | |||
|  | @ -442,7 +442,7 @@ namespace OpenSim.Framework.Servers | |||
|             if (File.Exists(gitCommitFileName)) | ||||
|             { | ||||
|                 StreamReader CommitFile = File.OpenText(gitCommitFileName); | ||||
|                 buildVersion = Environment.NewLine + "git# " + CommitFile.ReadLine(); | ||||
|                 buildVersion = CommitFile.ReadLine(); | ||||
|                 CommitFile.Close(); | ||||
|                 m_version += buildVersion ?? ""; | ||||
|             } | ||||
|  |  | |||
|  | @ -13593,7 +13593,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|                         if (handlerGodKickUser != null) | ||||
|                         { | ||||
|                             handlerGodKickUser(gkupack.UserInfo.GodID, gkupack.UserInfo.GodSessionID, | ||||
|                                                gkupack.UserInfo.AgentID, (uint)0, gkupack.UserInfo.Reason); | ||||
|                         	                   gkupack.UserInfo.AgentID, gkupack.UserInfo.KickFlags, gkupack.UserInfo.Reason,gkupack.UserInfo); | ||||
|                         } | ||||
|                     } | ||||
|                     else | ||||
|  |  | |||
|  | @ -138,6 +138,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|         /// whether or not to sleep</summary> | ||||
|         private bool m_packetSent; | ||||
| 
 | ||||
|         /// <summary>Environment.TickCount of the last time that packet stats were reported to the scene</summary> | ||||
|         private int m_elapsedMSSinceLastStatReport = 0; | ||||
|         /// <summary>Environment.TickCount of the last time the outgoing packet handler executed</summary> | ||||
|         private int m_tickLastOutgoingPacketHandler; | ||||
|         /// <summary>Keeps track of the number of elapsed milliseconds since the last time the outgoing packet handler looped</summary> | ||||
|  | @ -246,6 +248,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|             // Start the packet processing threads | ||||
|             Watchdog.StartThread(IncomingPacketHandler, "Incoming Packets (" + m_scene.RegionInfo.RegionName + ")", ThreadPriority.Normal, false); | ||||
|             Watchdog.StartThread(OutgoingPacketHandler, "Outgoing Packets (" + m_scene.RegionInfo.RegionName + ")", ThreadPriority.Normal, false); | ||||
|             m_elapsedMSSinceLastStatReport = Environment.TickCount; | ||||
|         } | ||||
| 
 | ||||
|         public new void Stop() | ||||
|  | @ -737,6 +740,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
|                 // We don't need to do anything else with ping checks | ||||
|                 StartPingCheckPacket startPing = (StartPingCheckPacket)packet; | ||||
|                 CompletePing(udpClient, startPing.PingID.PingID); | ||||
| 
 | ||||
|                 if ((Environment.TickCount - m_elapsedMSSinceLastStatReport) >= 3000) | ||||
|                 { | ||||
|                     udpClient.SendPacketStats(); | ||||
|                     m_elapsedMSSinceLastStatReport = Environment.TickCount; | ||||
|                 } | ||||
|                 return; | ||||
|             } | ||||
|             else if (packet.Type == PacketType.CompletePingCheck) | ||||
|  |  | |||
|  | @ -98,7 +98,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods | |||
|         /// <param name="godID">The person doing the kicking</param> | ||||
|         /// <param name="sessionID">The session of the person doing the kicking</param> | ||||
|         /// <param name="agentID">the person that is being kicked</param> | ||||
|         /// <param name="kickflags">This isn't used apparently</param> | ||||
|         /// <param name="kickflags">Tells what to do to the user</param> | ||||
|         /// <param name="reason">The message to send to the user after it's been turned into a field</param> | ||||
|         public void KickUser(UUID godID, UUID sessionID, UUID agentID, uint kickflags, byte[] reason) | ||||
|         { | ||||
|  | @ -110,39 +110,56 @@ namespace OpenSim.Region.CoreModules.Avatar.Gods | |||
|             { | ||||
|                 if (m_scene.Permissions.IsGod(godID)) | ||||
|                 { | ||||
|                     if (agentID == kickUserID) | ||||
|                     if (kickflags == 0) | ||||
|                     { | ||||
|                         string reasonStr = Utils.BytesToString(reason); | ||||
|                         if (agentID == kickUserID) | ||||
|                         { | ||||
|                             string reasonStr = Utils.BytesToString(reason); | ||||
| 
 | ||||
|                         m_scene.ForEachClient( | ||||
|                             delegate(IClientAPI controller) | ||||
|                             { | ||||
|                                 if (controller.AgentId != godID) | ||||
|                                     controller.Kick(reasonStr); | ||||
|                             } | ||||
|                         ); | ||||
| 
 | ||||
|                         // This is a bit crude. It seems the client will be null before it actually stops the thread | ||||
|                         // The thread will kill itself eventually :/ | ||||
|                         // Is there another way to make sure *all* clients get this 'inter region' message? | ||||
|                         m_scene.ForEachScenePresence( | ||||
|                             delegate(ScenePresence p) | ||||
|                             { | ||||
|                                 if (p.UUID != godID && !p.IsChildAgent) | ||||
|                                 { | ||||
|                                     // Possibly this should really be p.Close() though that method doesn't send a close | ||||
|                                     // to the client | ||||
|                                     p.ControllingClient.Close(); | ||||
|                             m_scene.ForEachClient( | ||||
|                                 delegate(IClientAPI controller) | ||||
|                 				{ | ||||
|                                     if (controller.AgentId != godID) | ||||
|                                         controller.Kick(reasonStr); | ||||
|                                 } | ||||
|                             } | ||||
|                         ); | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         m_scene.SceneGraph.removeUserCount(!sp.IsChildAgent); | ||||
|                             ); | ||||
| 
 | ||||
|                         sp.ControllingClient.Kick(Utils.BytesToString(reason)); | ||||
|                         sp.ControllingClient.Close(); | ||||
|                             // This is a bit crude. It seems the client will be null before it actually stops the thread | ||||
|                             // The thread will kill itself eventually :/ | ||||
|                             // Is there another way to make sure *all* clients get this 'inter region' message? | ||||
|                             m_scene.ForEachScenePresence( | ||||
|                                 delegate(ScenePresence p) | ||||
|                                 { | ||||
|                                     if (p.UUID != godID && !p.IsChildAgent) | ||||
|                                     { | ||||
|                                         // Possibly this should really be p.Close() though that method doesn't send a close | ||||
|                                         // to the client | ||||
|                                         p.ControllingClient.Close(); | ||||
|                                     } | ||||
|                                 } | ||||
|                             ); | ||||
|                         } | ||||
|                         else | ||||
|                         { | ||||
|                             m_scene.SceneGraph.removeUserCount(!sp.IsChildAgent); | ||||
| 
 | ||||
|                             sp.ControllingClient.Kick(Utils.BytesToString(reason)); | ||||
|                             sp.ControllingClient.Close(); | ||||
|                         } | ||||
|                     } | ||||
|                      | ||||
|                     if (kickflags == 1) | ||||
|                     { | ||||
|                         sp.AllowMovement = false; | ||||
|                         m_dialogModule.SendAlertToUser(agentID, Utils.BytesToString(reason)); | ||||
|                         m_dialogModule.SendAlertToUser(godID, "User Frozen"); | ||||
|                     } | ||||
|                      | ||||
|                     if (kickflags == 2) | ||||
|                     { | ||||
|                         sp.AllowMovement = true; | ||||
|                         m_dialogModule.SendAlertToUser(agentID, Utils.BytesToString(reason)); | ||||
|                         m_dialogModule.SendAlertToUser(godID, "User Unfrozen"); | ||||
|                     } | ||||
|                 } | ||||
|                 else | ||||
|  |  | |||
|  | @ -602,9 +602,12 @@ namespace OpenSim.Region.CoreModules.Scripting.WorldComm | |||
|                 ListenerInfo info = | ||||
|                         ListenerInfo.FromData(localID, itemID, hostID, item); | ||||
| 
 | ||||
|                 if (!m_listeners.ContainsKey((int)item[2])) | ||||
|                     m_listeners.Add((int)item[2], new List<ListenerInfo>()); | ||||
|                 m_listeners[(int)item[2]].Add(info); | ||||
|                 lock (m_listeners) | ||||
|                 { | ||||
|                     if (!m_listeners.ContainsKey((int)item[2])) | ||||
|                         m_listeners.Add((int)item[2], new List<ListenerInfo>()); | ||||
|                     m_listeners[(int)item[2]].Add(info); | ||||
|                 } | ||||
| 
 | ||||
|                 idx+=6; | ||||
|             } | ||||
|  |  | |||
|  | @ -453,6 +453,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
|         /// <summary> | ||||
|         /// Resolve path to a working FileStream | ||||
|         /// </summary> | ||||
|         /// <param name="path"></param> | ||||
|         /// <returns></returns> | ||||
|         private Stream GetStream(string path) | ||||
|         { | ||||
|             if (File.Exists(path)) | ||||
|  | @ -499,8 +501,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
|             WebResponse response = request.GetResponse(); | ||||
|             Stream file = response.GetResponseStream(); | ||||
| 
 | ||||
|             if (response.ContentType != "application/x-oar") | ||||
|                 throw new Exception(String.Format("{0} does not identify an OAR file", uri.ToString())); | ||||
|             // justincc: gonna ignore the content type for now and just try anything | ||||
|             //if (response.ContentType != "application/x-oar") | ||||
|             //    throw new Exception(String.Format("{0} does not identify an OAR file", uri.ToString())); | ||||
| 
 | ||||
|             if (response.ContentLength == 0) | ||||
|                 throw new Exception(String.Format("{0} returned an empty file", uri.ToString())); | ||||
|  |  | |||
|  | @ -800,30 +800,31 @@ namespace OpenSim.Region.CoreModules.World.Permissions | |||
|         } | ||||
|      | ||||
|         protected bool GenericParcelOwnerPermission(UUID user, ILandObject parcel, ulong groupPowers) | ||||
|         { | ||||
|             bool permission = false; | ||||
| 
 | ||||
|         {           | ||||
|             if (parcel.LandData.OwnerID == user) | ||||
|             { | ||||
|                 permission = true; | ||||
|                 // Returning immediately so that group deeded objects on group deeded land don't trigger a NRE on | ||||
|                 // the subsequent redundant checks when using lParcelMediaCommandList() | ||||
|                 // See http://opensimulator.org/mantis/view.php?id=3999 for more details | ||||
|                 return true; | ||||
|             } | ||||
| 
 | ||||
|             if (parcel.LandData.IsGroupOwned && IsGroupMember(parcel.LandData.GroupID, user, groupPowers)) | ||||
|             { | ||||
|                 permission = true; | ||||
|                 return true; | ||||
|             } | ||||
|      | ||||
|             if (IsEstateManager(user)) | ||||
|             { | ||||
|                 permission = true; | ||||
|                 return true; | ||||
|             } | ||||
| 
 | ||||
|             if (IsAdministrator(user)) | ||||
|             { | ||||
|                 permission = true; | ||||
|                 return true; | ||||
|             } | ||||
| 
 | ||||
|             return permission; | ||||
|             return false; | ||||
|         } | ||||
| 
 | ||||
|         protected bool GenericParcelPermission(UUID user, Vector3 pos, ulong groupPowers) | ||||
|  |  | |||
|  | @ -4410,16 +4410,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
| 
 | ||||
|         #endregion | ||||
| 
 | ||||
|         #region Avatar Appearance Default | ||||
| 
 | ||||
|         public static void GetDefaultAvatarAppearance(out AvatarWearable[] wearables, out byte[] visualParams) | ||||
|         { | ||||
|             visualParams = AvatarAppearance.GetDefaultVisualParams(); | ||||
|             wearables = AvatarWearable.DefaultWearables; | ||||
|         } | ||||
| 
 | ||||
|         #endregion | ||||
| 
 | ||||
|         public void RegionHandleRequest(IClientAPI client, UUID regionID) | ||||
|         { | ||||
|             ulong handle = 0; | ||||
|  |  | |||
|  | @ -238,7 +238,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
|                 sb[12].StatValue = m_otherMS / statsUpdateFactor; | ||||
| 
 | ||||
|                 sb[13].StatID = (uint)Stats.InPacketsPerSecond; | ||||
|                 sb[13].StatValue = (m_inPacketsPerSecond); | ||||
|                 sb[13].StatValue = (m_inPacketsPerSecond / statsUpdateFactor); | ||||
| 
 | ||||
|                 sb[14].StatID = (uint)Stats.OutPacketsPerSecond; | ||||
|                 sb[14].StatValue = (m_outPacketsPerSecond / statsUpdateFactor); | ||||
|  | @ -285,8 +285,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
|             m_fps = 0; | ||||
|             m_pfps = 0; | ||||
|             m_agentUpdates = 0; | ||||
|             m_inPacketsPerSecond = 0; | ||||
|             m_outPacketsPerSecond = 0; | ||||
|             //m_inPacketsPerSecond = 0; | ||||
|             //m_outPacketsPerSecond = 0; | ||||
|             m_unAckedBytes = 0; | ||||
|             m_scriptLinesPerSecond = 0; | ||||
| 
 | ||||
|  | @ -373,12 +373,12 @@ namespace OpenSim.Region.Framework.Scenes | |||
| 
 | ||||
|         public void AddInPackets(int numPackets) | ||||
|         { | ||||
|             m_inPacketsPerSecond += numPackets; | ||||
|             m_inPacketsPerSecond = numPackets; | ||||
|         } | ||||
| 
 | ||||
|         public void AddOutPackets(int numPackets) | ||||
|         { | ||||
|             m_outPacketsPerSecond += numPackets; | ||||
|             m_outPacketsPerSecond = numPackets; | ||||
|         } | ||||
| 
 | ||||
|         public void AddunAckedBytes(int numBytes) | ||||
|  |  | |||
|  | @ -69,13 +69,13 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat | |||
|             m_config = config.Configs["IRC"]; | ||||
|             if (m_config == null) | ||||
|             { | ||||
|                 m_log.InfoFormat("[IRC-Bridge] module not configured"); | ||||
| //                m_log.InfoFormat("[IRC-Bridge] module not configured"); | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             if (!m_config.GetBoolean("enabled", false)) | ||||
|             { | ||||
|                 m_log.InfoFormat("[IRC-Bridge] module disabled in configuration"); | ||||
| //                m_log.InfoFormat("[IRC-Bridge] module disabled in configuration"); | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|  | @ -85,6 +85,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat | |||
|             } | ||||
| 
 | ||||
|             m_pluginEnabled = true; | ||||
|             m_log.InfoFormat("[IRC-Bridge]: Module enabled"); | ||||
|         } | ||||
| 
 | ||||
|         public void AddRegion(Scene scene) | ||||
|  | @ -143,7 +144,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat | |||
| 
 | ||||
|         public static XmlRpcResponse XmlRpcAdminMethod(XmlRpcRequest request, IPEndPoint remoteClient) | ||||
|         { | ||||
|             m_log.Info("[IRC-Bridge]: XML RPC Admin Entry"); | ||||
|             m_log.Debug("[IRC-Bridge]: XML RPC Admin Entry"); | ||||
| 
 | ||||
|             XmlRpcResponse response = new XmlRpcResponse(); | ||||
|             Hashtable  responseData = new Hashtable(); | ||||
|  | @ -188,7 +189,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.Chat | |||
|             } | ||||
|             catch (Exception e) | ||||
|             { | ||||
|                 m_log.InfoFormat("[IRC-Bridge] XML RPC Admin request failed : {0}", e.Message); | ||||
|                 m_log.ErrorFormat("[IRC-Bridge] XML RPC Admin request failed : {0}", e.Message); | ||||
| 
 | ||||
|                 responseData["success"] = "false"; | ||||
|                 responseData["error"]   = e.Message; | ||||
|  |  | |||
|  | @ -1,48 +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.Reflection; | ||||
| using log4net; | ||||
| 
 | ||||
| namespace OpenSim.Region.Modules.Python.PythonAPI | ||||
| { | ||||
|     class Console | ||||
|     { | ||||
|         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||||
| 
 | ||||
|         public void WriteLine(string txt) | ||||
|         { | ||||
|             m_log.Info(txt); | ||||
|         } | ||||
| 
 | ||||
|         public void WriteLine(string txt, params Object[] e) | ||||
|         { | ||||
|             m_log.Info(String.Format(txt, e)); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -1,71 +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.Generic; | ||||
| using System.Reflection; | ||||
| using System.Security.Policy; | ||||
| using System.Text; | ||||
| using IronPython.Hosting; | ||||
| using log4net; | ||||
| using Nini.Config; | ||||
| using OpenSim.Region.Framework.Interfaces; | ||||
| using OpenSim.Region.Framework.Scenes; | ||||
| 
 | ||||
| namespace OpenSim.Region.Modules.Python | ||||
| { | ||||
|     class PythonModule : IRegionModule | ||||
|     { | ||||
|         private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||||
|         private PythonEngine m_python; | ||||
| 
 | ||||
|         public void Initialise(Scene scene, IConfigSource source) | ||||
|         { | ||||
|         } | ||||
| 
 | ||||
|         public void PostInitialise() | ||||
|         { | ||||
|             m_log.Info("[PYTHON] Initialising IronPython engine."); | ||||
|             m_python = new PythonEngine(); | ||||
|             m_python.AddToPath(System.Environment.CurrentDirectory + System.IO.Path.DirectorySeparatorChar + "Python"); | ||||
|         } | ||||
| 
 | ||||
|         public void Close() | ||||
|         { | ||||
|         } | ||||
| 
 | ||||
|         public string Name | ||||
|         { | ||||
|             get { return "PythonModule"; } | ||||
|         } | ||||
| 
 | ||||
|         public bool IsSharedModule | ||||
|         { | ||||
|             get { return true; } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -236,7 +236,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             iHttpReq.StopHttpRequest(localID, itemID); | ||||
| 
 | ||||
|             IWorldComm comms = engine.World.RequestModuleInterface<IWorldComm>(); | ||||
|             comms.DeleteListener(itemID); | ||||
|             if (comms != null) | ||||
|                 comms.DeleteListener(itemID); | ||||
| 
 | ||||
|             IXMLRPC xmlrpc = engine.World.RequestModuleInterface<IXMLRPC>(); | ||||
|             xmlrpc.DeleteChannels(itemID); | ||||
|  |  | |||
|  | @ -749,7 +749,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|                           ChatTypeEnum.Whisper, channelID, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, false); | ||||
| 
 | ||||
|             IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); | ||||
|             wComm.DeliverMessage(ChatTypeEnum.Whisper, channelID, m_host.Name, m_host.UUID, text); | ||||
|             if (wComm != null) | ||||
|                 wComm.DeliverMessage(ChatTypeEnum.Whisper, channelID, m_host.Name, m_host.UUID, text); | ||||
|         } | ||||
| 
 | ||||
|         public void llSay(int channelID, string text) | ||||
|  | @ -769,7 +770,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|                               ChatTypeEnum.Say, channelID, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, false); | ||||
| 
 | ||||
|                 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); | ||||
|                 wComm.DeliverMessage(ChatTypeEnum.Say, channelID, m_host.Name, m_host.UUID, text); | ||||
|                 if (wComm != null) | ||||
|                     wComm.DeliverMessage(ChatTypeEnum.Say, channelID, m_host.Name, m_host.UUID, text); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  | @ -784,7 +786,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|                           ChatTypeEnum.Shout, channelID, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, true); | ||||
| 
 | ||||
|             IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); | ||||
|             wComm.DeliverMessage(ChatTypeEnum.Shout, channelID, m_host.Name, m_host.UUID, text); | ||||
|             if (wComm != null) | ||||
|                 wComm.DeliverMessage(ChatTypeEnum.Shout, channelID, m_host.Name, m_host.UUID, text); | ||||
|         } | ||||
| 
 | ||||
|         public void llRegionSay(int channelID, string text) | ||||
|  | @ -801,7 +804,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             m_host.AddScriptLPS(1); | ||||
| 
 | ||||
|             IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); | ||||
|             wComm.DeliverMessage(ChatTypeEnum.Region, channelID, m_host.Name, m_host.UUID, text); | ||||
|             if (wComm != null) | ||||
|                 wComm.DeliverMessage(ChatTypeEnum.Region, channelID, m_host.Name, m_host.UUID, text); | ||||
|         } | ||||
| 
 | ||||
|         public LSL_Integer llListen(int channelID, string name, string ID, string msg) | ||||
|  | @ -810,21 +814,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
|             UUID keyID; | ||||
|             UUID.TryParse(ID, out keyID); | ||||
|             IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); | ||||
|             return wComm.Listen(m_localID, m_itemID, m_host.UUID, channelID, name, keyID, msg); | ||||
|             if (wComm != null) | ||||
|                 return wComm.Listen(m_localID, m_itemID, m_host.UUID, channelID, name, keyID, msg); | ||||
|             else | ||||
|                 return -1; | ||||
|         } | ||||
| 
 | ||||
|         public void llListenControl(int number, int active) | ||||
|         { | ||||
|             m_host.AddScriptLPS(1); | ||||
|             IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); | ||||
|             wComm.ListenControl(m_itemID, number, active); | ||||
|             if (wComm != null) | ||||
|                 wComm.ListenControl(m_itemID, number, active); | ||||
|         } | ||||
| 
 | ||||
|         public void llListenRemove(int number) | ||||
|         { | ||||
|             m_host.AddScriptLPS(1); | ||||
|             IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); | ||||
|             wComm.ListenRemove(m_itemID, number); | ||||
|             if (wComm != null) | ||||
|                 wComm.ListenRemove(m_itemID, number); | ||||
|         } | ||||
| 
 | ||||
|         public void llSensor(string name, string id, int type, double range, double arc) | ||||
|  |  | |||
|  | @ -166,7 +166,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins | |||
|                 ts.next = DateTime.Now.Ticks + (long)data[idx+1]; | ||||
|                 idx += 2; | ||||
| 
 | ||||
|                 Timers.Add(MakeTimerKey(localID,itemID), ts); | ||||
|                 lock (TimerListLock) | ||||
|                 { | ||||
|                     Timers.Add(MakeTimerKey(localID, itemID), ts); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  |  | |||
|  | @ -1394,7 +1394,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
|             if (rootE.GetAttribute("UUID") != itemID.ToString()) | ||||
|                 return; | ||||
| 
 | ||||
|             string assetID = rootE.GetAttribute("Asset"); | ||||
| //            string assetID = rootE.GetAttribute("Asset"); | ||||
| 
 | ||||
|             XmlNodeList stateL = rootE.GetElementsByTagName("ScriptState"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -38,10 +38,10 @@ namespace OpenSim.Tests.Common.Mock | |||
|     /// mono addin plugin system starts co-operating with the unit test system.  Currently no locking since unit | ||||
|     /// tests are single threaded. | ||||
|     /// </summary> | ||||
|     public class TestAssetDataPlugin : BaseAssetRepository, IAssetDataPlugin | ||||
|     public class MockAssetDataPlugin : BaseAssetRepository, IAssetDataPlugin | ||||
|     { | ||||
|         public string Version { get { return "0"; } } | ||||
|         public string Name { get { return "TestAssetDataPlugin"; } } | ||||
|         public string Name { get { return "MockAssetDataPlugin"; } } | ||||
| 
 | ||||
|         public void Initialise() {} | ||||
|         public void Initialise(string connect) {} | ||||
|  | @ -1684,8 +1684,6 @@ | |||
|       <Reference name="OpenMetaverseTypes.dll"/> | ||||
|       <Reference name="OpenMetaverse.StructuredData.dll"/> | ||||
|       <Reference name="OpenMetaverse.dll"/> | ||||
|       <Reference name="IronPython.dll"/> | ||||
|       <Reference name="IronMath.dll"/> | ||||
|       <Reference name="PumaCode.SvnDotNet.dll"/> | ||||
|       <Reference name="OpenSim.Framework"/> | ||||
|       <Reference name="OpenSim.Framework.Communications"/> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Melanie
						Melanie