Merge branch 'master' into bigmerge
Conflicts: OpenSim/Framework/Watchdog.csavinationmerge
						commit
						fd22159d0c
					
				| 
						 | 
					@ -303,6 +303,11 @@
 | 
				
			||||||
    <arg value="-xml=test-results/OpenSim.Framework.Servers.Tests.dll-Results.xml" />
 | 
					    <arg value="-xml=test-results/OpenSim.Framework.Servers.Tests.dll-Results.xml" />
 | 
				
			||||||
  </exec>
 | 
					  </exec>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 <exec program="${nunitcmd}" failonerror="false" resultproperty="testresult.opensim.region.clientstack.lindencaps.tests">
 | 
				
			||||||
 | 
					    <arg value="./bin/OpenSim.Region.ClientStack.LindenCaps.Tests.dll" />
 | 
				
			||||||
 | 
					    <arg value="-xml=test-results/OpenSim.Region.ClientStack.LindenCaps.Tests.dll-Results.xml" />
 | 
				
			||||||
 | 
					  </exec>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 <exec program="${nunitcmd}" failonerror="false" resultproperty="testresult.opensim.region.clientstack.lindenudp.tests">
 | 
					 <exec program="${nunitcmd}" failonerror="false" resultproperty="testresult.opensim.region.clientstack.lindenudp.tests">
 | 
				
			||||||
    <arg value="./bin/OpenSim.Region.ClientStack.LindenUDP.Tests.dll" />
 | 
					    <arg value="./bin/OpenSim.Region.ClientStack.LindenUDP.Tests.dll" />
 | 
				
			||||||
    <arg value="-xml=test-results/OpenSim.Region.ClientStack.LindenUDP.Tests.dll-Results.xml" />
 | 
					    <arg value="-xml=test-results/OpenSim.Region.ClientStack.LindenUDP.Tests.dll-Results.xml" />
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,7 @@ using System.IO;
 | 
				
			||||||
using System.Xml;
 | 
					using System.Xml;
 | 
				
			||||||
using System.Collections.Generic;
 | 
					using System.Collections.Generic;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					using OpenSim.Framework.Console;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,7 +33,7 @@ using System.Reflection;
 | 
				
			||||||
using System.Xml;
 | 
					using System.Xml;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					//using OpenSim.Framework.Console;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace OpenSim.Framework
 | 
					namespace OpenSim.Framework
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,12 +33,11 @@ using System.Reflection;
 | 
				
			||||||
using System.Text;
 | 
					using System.Text;
 | 
				
			||||||
using System.Threading;
 | 
					using System.Threading;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace OpenSim.Framework.Console
 | 
					namespace OpenSim.Framework.Console
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public delegate void CommandDelegate(string module, string[] cmd);
 | 
					    public class Commands : ICommands
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public class Commands
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Encapsulates a command that can be invoked from the console
 | 
					        /// Encapsulates a command that can be invoked from the console
 | 
				
			||||||
| 
						 | 
					@ -564,14 +563,16 @@ namespace OpenSim.Framework.Console
 | 
				
			||||||
    /// <summary>
 | 
					    /// <summary>
 | 
				
			||||||
    /// A console that processes commands internally
 | 
					    /// A console that processes commands internally
 | 
				
			||||||
    /// </summary>
 | 
					    /// </summary>
 | 
				
			||||||
    public class CommandConsole : ConsoleBase
 | 
					    public class CommandConsole : ConsoleBase, ICommandConsole
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
 | 
					        private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public Commands Commands = new Commands();
 | 
					        public ICommands Commands { get; private set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public CommandConsole(string defaultPrompt) : base(defaultPrompt)
 | 
					        public CommandConsole(string defaultPrompt) : base(defaultPrompt)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            Commands = new Commands();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            Commands.AddCommand("console", false, "help", "help [<command>]", 
 | 
					            Commands.AddCommand("console", false, "help", "help [<command>]", 
 | 
				
			||||||
                    "Get general command list or more detailed help on a specific command", Help);
 | 
					                    "Get general command list or more detailed help on a specific command", Help);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -41,7 +41,7 @@ namespace OpenSim.Framework.Console
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        protected string prompt = "# ";
 | 
					        protected string prompt = "# ";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public object ConsoleScene = null;
 | 
					        public object ConsoleScene { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// The default prompt text.
 | 
					        /// The default prompt text.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,90 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 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.Xml;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace OpenSim.Framework
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public delegate void CommandDelegate(string module, string[] cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public interface ICommands
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        void FromXml(XmlElement root, CommandDelegate fn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Get help for the given help string
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="helpParts">Parsed parts of the help string.  If empty then general help is returned.</param>
 | 
				
			||||||
 | 
					        /// <returns></returns>
 | 
				
			||||||
 | 
					        List<string> GetHelp(string[] cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Add a command to those which can be invoked from the console.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="module"></param>
 | 
				
			||||||
 | 
					        /// <param name="command"></param>
 | 
				
			||||||
 | 
					        /// <param name="help"></param>
 | 
				
			||||||
 | 
					        /// <param name="longhelp"></param>
 | 
				
			||||||
 | 
					        /// <param name="fn"></param>
 | 
				
			||||||
 | 
					        void AddCommand(string module, bool shared, string command, string help, string longhelp, CommandDelegate fn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Add a command to those which can be invoked from the console.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="module"></param>
 | 
				
			||||||
 | 
					        /// <param name="command"></param>
 | 
				
			||||||
 | 
					        /// <param name="help"></param>
 | 
				
			||||||
 | 
					        /// <param name="longhelp"></param>
 | 
				
			||||||
 | 
					        /// <param name="descriptivehelp"></param>
 | 
				
			||||||
 | 
					        /// <param name="fn"></param>
 | 
				
			||||||
 | 
					        void AddCommand(string module, bool shared, string command,
 | 
				
			||||||
 | 
					                string help, string longhelp, string descriptivehelp,
 | 
				
			||||||
 | 
					                CommandDelegate fn);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        string[] FindNextOption(string[] cmd, bool term);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        string[] Resolve(string[] cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        XmlElement GetXml(XmlDocument doc);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public interface ICommandConsole : IConsole
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        ICommands Commands { get; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Display a command prompt on the console and wait for user input
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        void Prompt();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        void RunCommand(string cmd);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        string ReadLine(string p, bool isCommand, bool e);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,53 @@
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace OpenSim.Framework
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    public interface IConsole
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        object ConsoleScene { get; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        void Output(string text, string level);
 | 
				
			||||||
 | 
					        void Output(string text);
 | 
				
			||||||
 | 
					        void OutputFormat(string format, params object[] components);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        string CmdPrompt(string p);
 | 
				
			||||||
 | 
					        string CmdPrompt(string p, string def);
 | 
				
			||||||
 | 
					        string CmdPrompt(string p, List<char> excludedCharacters);
 | 
				
			||||||
 | 
					        string CmdPrompt(string p, string def, List<char> excludedCharacters);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Displays a command prompt and returns a default value, user may only enter 1 of 2 options
 | 
				
			||||||
 | 
					        string CmdPrompt(string prompt, string defaultresponse, List<string> options);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Displays a prompt and waits for the user to enter a string, then returns that string
 | 
				
			||||||
 | 
					        // (Done with no echo and suitable for passwords)
 | 
				
			||||||
 | 
					        string PasswdPrompt(string p);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -26,7 +26,7 @@
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					//using OpenSim.Framework.Console;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace OpenSim.Framework
 | 
					namespace OpenSim.Framework
 | 
				
			||||||
| 
						 | 
					@ -108,7 +108,7 @@ namespace OpenSim.Framework
 | 
				
			||||||
        void RegisterModuleInterface<M>(M mod);
 | 
					        void RegisterModuleInterface<M>(M mod);
 | 
				
			||||||
        void StackModuleInterface<M>(M mod);
 | 
					        void StackModuleInterface<M>(M mod);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        void AddCommand(object module, string command, string shorthelp, string longhelp, CommandDelegate callback);
 | 
					//        void AddCommand(object module, string command, string shorthelp, string longhelp, CommandDelegate callback);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        ISceneObject DeserializeObject(string representation);
 | 
					        ISceneObject DeserializeObject(string representation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,13 +25,13 @@
 | 
				
			||||||
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
					 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace OpenSim.Framework.Console
 | 
					namespace OpenSim.Framework
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public class MainConsole
 | 
					    public class MainConsole
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        private static CommandConsole instance;
 | 
					        private static ICommandConsole instance;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public static CommandConsole Instance
 | 
					        public static ICommandConsole Instance
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            get { return instance; }
 | 
					            get { return instance; }
 | 
				
			||||||
            set { instance = value; }
 | 
					            set { instance = value; }
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,7 @@ using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenMetaverse.StructuredData;
 | 
					using OpenMetaverse.StructuredData;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					//using OpenSim.Framework.Console;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace OpenSim.Framework
 | 
					namespace OpenSim.Framework
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -192,6 +192,15 @@ namespace OpenSim.Framework.Servers
 | 
				
			||||||
                m_console.Commands.AddCommand("base", false, "show version",
 | 
					                m_console.Commands.AddCommand("base", false, "show version",
 | 
				
			||||||
                        "show version",
 | 
					                        "show version",
 | 
				
			||||||
                        "Show server version", HandleShow);
 | 
					                        "Show server version", HandleShow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                m_console.Commands.AddCommand("base", false, "threads abort",
 | 
				
			||||||
 | 
					                        "threads abort <thread-id>",
 | 
				
			||||||
 | 
					                        "Abort a managed thread.  Use \"show threads\" to find possible threads.", HandleThreadsAbort);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                m_console.Commands.AddCommand("base", false, "threads show",
 | 
				
			||||||
 | 
					                        "threads show",
 | 
				
			||||||
 | 
					                        "Show thread status.  Synonym for \"show threads\"",
 | 
				
			||||||
 | 
					                        (string module, string[] args) => Notice(GetThreadsReport()));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
| 
						 | 
					@ -395,6 +404,27 @@ namespace OpenSim.Framework.Servers
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        public virtual void HandleThreadsAbort(string module, string[] cmd)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            if (cmd.Length != 3)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                MainConsole.Instance.Output("Usage: threads abort <thread-id>");
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            int threadId;
 | 
				
			||||||
 | 
					            if (!int.TryParse(cmd[2], out threadId))
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                MainConsole.Instance.Output("ERROR: Thread id must be an integer");
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (Watchdog.AbortThread(threadId))
 | 
				
			||||||
 | 
					                MainConsole.Instance.OutputFormat("Aborted thread with id {0}", threadId);
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                MainConsole.Instance.OutputFormat("ERROR - Thread with id {0} not found in managed threads", threadId);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        protected void ShowInfo()
 | 
					        protected void ShowInfo()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,7 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Add a handler for an HTTP request.
 | 
					        /// Add a handler for an HTTP request.
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// 
 | 
					        /// <remarks>
 | 
				
			||||||
        /// This handler can actually be invoked either as 
 | 
					        /// This handler can actually be invoked either as 
 | 
				
			||||||
        /// 
 | 
					        /// 
 | 
				
			||||||
        /// http://<hostname>:<port>/?method=<methodName> 
 | 
					        /// http://<hostname>:<port>/?method=<methodName> 
 | 
				
			||||||
| 
						 | 
					@ -70,7 +70,7 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
        /// In addition, the handler invoked by the HTTP server for any request is the one when best matches the request
 | 
					        /// In addition, the handler invoked by the HTTP server for any request is the one when best matches the request
 | 
				
			||||||
        /// URI.  So if a handler for "/myapp/" is registered and a request for "/myapp/page" is received, then
 | 
					        /// URI.  So if a handler for "/myapp/" is registered and a request for "/myapp/page" is received, then
 | 
				
			||||||
        /// the "/myapp/" handler is invoked if no "/myapp/page" handler exists.
 | 
					        /// the "/myapp/" handler is invoked if no "/myapp/page" handler exists.
 | 
				
			||||||
        /// 
 | 
					        /// </remarks>
 | 
				
			||||||
        /// <param name="methodName"></param>
 | 
					        /// <param name="methodName"></param>
 | 
				
			||||||
        /// <param name="handler"></param>
 | 
					        /// <param name="handler"></param>
 | 
				
			||||||
        /// <returns>
 | 
					        /// <returns>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Threading;
 | 
				
			||||||
using System.Reflection;
 | 
					using System.Reflection;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using HttpServer;
 | 
					using HttpServer;
 | 
				
			||||||
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace OpenSim.Framework.Servers.HttpServer
 | 
					namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					@ -54,21 +55,27 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
            m_PollServiceWorkerThreads = new PollServiceWorkerThread[m_WorkerThreadCount];
 | 
					            m_PollServiceWorkerThreads = new PollServiceWorkerThread[m_WorkerThreadCount];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //startup worker threads
 | 
					            //startup worker threads
 | 
				
			||||||
            for (uint i=0;i<m_WorkerThreadCount;i++)
 | 
					            for (uint i = 0; i < m_WorkerThreadCount; i++)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                m_PollServiceWorkerThreads[i] = new PollServiceWorkerThread(m_server, pTimeout);
 | 
					                m_PollServiceWorkerThreads[i] = new PollServiceWorkerThread(m_server, pTimeout);
 | 
				
			||||||
                m_PollServiceWorkerThreads[i].ReQueue += ReQueueEvent;
 | 
					                m_PollServiceWorkerThreads[i].ReQueue += ReQueueEvent;
 | 
				
			||||||
               
 | 
					
 | 
				
			||||||
                m_workerThreads[i] = new Thread(m_PollServiceWorkerThreads[i].ThreadStart);
 | 
					                m_workerThreads[i]
 | 
				
			||||||
                m_workerThreads[i].Name = String.Format("PollServiceWorkerThread{0}",i);
 | 
					                    = Watchdog.StartThread(
 | 
				
			||||||
                //Can't add to thread Tracker here Referencing OpenSim.Framework creates circular reference
 | 
					                        m_PollServiceWorkerThreads[i].ThreadStart,
 | 
				
			||||||
                m_workerThreads[i].Start();
 | 
					                        String.Format("PollServiceWorkerThread{0}", i),
 | 
				
			||||||
 | 
					                        ThreadPriority.Normal,
 | 
				
			||||||
 | 
					                        false,
 | 
				
			||||||
 | 
					                        int.MaxValue);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            //start watcher threads
 | 
					            m_watcherThread
 | 
				
			||||||
            m_watcherThread = new Thread(ThreadStart);
 | 
					                = Watchdog.StartThread(
 | 
				
			||||||
            m_watcherThread.Name = "PollServiceWatcherThread";
 | 
					                    this.ThreadStart,
 | 
				
			||||||
            m_watcherThread.Start();
 | 
					                    "PollServiceWatcherThread",
 | 
				
			||||||
 | 
					                    ThreadPriority.Normal,
 | 
				
			||||||
 | 
					                    false,
 | 
				
			||||||
 | 
					                    1000 * 60 * 10);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        internal void ReQueueEvent(PollServiceHttpRequest req)
 | 
					        internal void ReQueueEvent(PollServiceHttpRequest req)
 | 
				
			||||||
| 
						 | 
					@ -83,10 +90,11 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
                m_requests.Enqueue(req);
 | 
					                m_requests.Enqueue(req);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void ThreadStart(object o)
 | 
					        public void ThreadStart()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            while (m_running)
 | 
					            while (m_running)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
 | 
					                Watchdog.UpdateThread();
 | 
				
			||||||
                ProcessQueuedRequests();
 | 
					                ProcessQueuedRequests();
 | 
				
			||||||
                Thread.Sleep(1000);
 | 
					                Thread.Sleep(1000);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					@ -107,7 +115,7 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
                for (int tc = 0; tc < m_WorkerThreadCount && m_requests.Count > 0; tc++)
 | 
					                for (int tc = 0; tc < m_WorkerThreadCount && m_requests.Count > 0; tc++)
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    //Loop over number of requests each thread handles.
 | 
					                    //Loop over number of requests each thread handles.
 | 
				
			||||||
                    for (int i=0;i<reqperthread && m_requests.Count > 0;i++)
 | 
					                    for (int i = 0; i < reqperthread && m_requests.Count > 0; i++)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        try
 | 
					                        try
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
| 
						 | 
					@ -125,14 +133,14 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ~PollServiceRequestManager()
 | 
					        ~PollServiceRequestManager()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            foreach (object o in m_requests)
 | 
					            foreach (object o in m_requests)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                PollServiceHttpRequest req = (PollServiceHttpRequest) o;
 | 
					                PollServiceHttpRequest req = (PollServiceHttpRequest) o;
 | 
				
			||||||
                m_server.DoHTTPGruntWork(req.PollServiceArgs.NoEvents(req.RequestID, req.PollServiceArgs.Id), new OSHttpResponse(new HttpResponse(req.HttpContext, req.Request), req.HttpContext));
 | 
					                m_server.DoHTTPGruntWork(
 | 
				
			||||||
 | 
					                    req.PollServiceArgs.NoEvents(req.RequestID, req.PollServiceArgs.Id),
 | 
				
			||||||
 | 
					                    new OSHttpResponse(new HttpResponse(req.HttpContext, req.Request), req.HttpContext));
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            m_requests.Clear();
 | 
					            m_requests.Clear();
 | 
				
			||||||
| 
						 | 
					@ -144,4 +152,4 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
            m_running = false;
 | 
					            m_running = false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -59,7 +59,7 @@ namespace OpenSim.Framework.Servers.HttpServer
 | 
				
			||||||
            m_timeout = pTimeout;
 | 
					            m_timeout = pTimeout;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void ThreadStart(object o)
 | 
					        public void ThreadStart()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            Run();
 | 
					            Run();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,7 +31,7 @@ using System.Net;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using OpenSim.Framework.Servers.HttpServer;
 | 
					using OpenSim.Framework.Servers.HttpServer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace OpenSim.Framework
 | 
					namespace OpenSim.Framework.Servers
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    public class MainServer
 | 
					    public class MainServer
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
| 
						 | 
					@ -40,19 +40,31 @@ namespace OpenSim.Framework
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        /// <summary>Timer interval in milliseconds for the watchdog timer</summary>
 | 
					        /// <summary>Timer interval in milliseconds for the watchdog timer</summary>
 | 
				
			||||||
        const double WATCHDOG_INTERVAL_MS = 2500.0d;
 | 
					        const double WATCHDOG_INTERVAL_MS = 2500.0d;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>Maximum timeout in milliseconds before a thread is considered dead</summary>
 | 
					        /// <summary>Maximum timeout in milliseconds before a thread is considered dead</summary>
 | 
				
			||||||
        const int WATCHDOG_TIMEOUT_MS = 5000;
 | 
					        const int WATCHDOG_TIMEOUT_MS = 5000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [System.Diagnostics.DebuggerDisplay("{Thread.Name}")]
 | 
					        [System.Diagnostics.DebuggerDisplay("{Thread.Name}")]
 | 
				
			||||||
        public class ThreadWatchdogInfo
 | 
					        public class ThreadWatchdogInfo
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            public Thread Thread;
 | 
					            public Thread Thread { get; private set; }
 | 
				
			||||||
            public int LastTick;
 | 
					            public int LastTick { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            public ThreadWatchdogInfo(Thread thread)
 | 
					            /// <summary>
 | 
				
			||||||
 | 
					            /// Number of milliseconds before we notify that the thread is having a problem.
 | 
				
			||||||
 | 
					            /// </summary>
 | 
				
			||||||
 | 
					            public int Timeout { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            /// <summary>
 | 
				
			||||||
 | 
					            /// Is this thread considered timed out?
 | 
				
			||||||
 | 
					            /// </summary>
 | 
				
			||||||
 | 
					            public bool IsTimedOut { get; set; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            public ThreadWatchdogInfo(Thread thread, int timeout)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                Thread = thread;
 | 
					                Thread = thread;
 | 
				
			||||||
                LastTick = Environment.TickCount;
 | 
					                Timeout = timeout;
 | 
				
			||||||
 | 
					                LastTick = Environment.TickCount & Int32.MaxValue;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -82,7 +94,7 @@ namespace OpenSim.Framework
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Start a new thread that is tracked by the watchdog timer
 | 
					        /// Start a new thread that is tracked by the watchdog timer.
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <param name="start">The method that will be executed in a new thread</param>
 | 
					        /// <param name="start">The method that will be executed in a new thread</param>
 | 
				
			||||||
        /// <param name="name">A name to give to the new thread</param>
 | 
					        /// <param name="name">A name to give to the new thread</param>
 | 
				
			||||||
| 
						 | 
					@ -91,6 +103,24 @@ namespace OpenSim.Framework
 | 
				
			||||||
        /// thread, otherwise false</param>
 | 
					        /// thread, otherwise false</param>
 | 
				
			||||||
        /// <returns>The newly created Thread object</returns>
 | 
					        /// <returns>The newly created Thread object</returns>
 | 
				
			||||||
        public static Thread StartThread(ThreadStart start, string name, ThreadPriority priority, bool isBackground)
 | 
					        public static Thread StartThread(ThreadStart start, string name, ThreadPriority priority, bool isBackground)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return StartThread(start, name, priority, isBackground, WATCHDOG_TIMEOUT_MS);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Start a new thread that is tracked by the watchdog timer
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        /// <param name="start">The method that will be executed in a new thread</param>
 | 
				
			||||||
 | 
					        /// <param name="name">A name to give to the new thread</param>
 | 
				
			||||||
 | 
					        /// <param name="priority">Priority to run the thread at</param>
 | 
				
			||||||
 | 
					        /// <param name="isBackground">True to run this thread as a background
 | 
				
			||||||
 | 
					        /// thread, otherwise false</param>
 | 
				
			||||||
 | 
					        /// <param name="timeout">
 | 
				
			||||||
 | 
					        /// Number of milliseconds to wait until we issue a warning about timeout.
 | 
				
			||||||
 | 
					        /// </para>
 | 
				
			||||||
 | 
					        /// <returns>The newly created Thread object</returns>
 | 
				
			||||||
 | 
					        public static Thread StartThread(
 | 
				
			||||||
 | 
					            ThreadStart start, string name, ThreadPriority priority, bool isBackground, int timeout)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            Thread thread = new Thread(start);
 | 
					            Thread thread = new Thread(start);
 | 
				
			||||||
            thread.Name = name;
 | 
					            thread.Name = name;
 | 
				
			||||||
| 
						 | 
					@ -98,6 +128,13 @@ namespace OpenSim.Framework
 | 
				
			||||||
            thread.IsBackground = isBackground;
 | 
					            thread.IsBackground = isBackground;
 | 
				
			||||||
            thread.Start();
 | 
					            thread.Start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ThreadWatchdogInfo twi = new ThreadWatchdogInfo(thread, timeout);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            m_log.Debug("[WATCHDOG]: Started tracking thread \"" + twi.Thread.Name + "\" (ID " + twi.Thread.ManagedThreadId + ")");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            lock (m_threads)
 | 
				
			||||||
 | 
					                m_threads.Add(twi.Thread.ManagedThreadId, twi);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return thread;
 | 
					            return thread;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -112,27 +149,44 @@ namespace OpenSim.Framework
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Stops watchdog tracking on the current thread
 | 
					        /// Stops watchdog tracking on the current thread
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        /// <returns>True if the thread was removed from the list of tracked
 | 
					        /// <returns>
 | 
				
			||||||
        /// threads, otherwise false</returns>
 | 
					        /// True if the thread was removed from the list of tracked
 | 
				
			||||||
 | 
					        /// threads, otherwise false
 | 
				
			||||||
 | 
					        /// </returns>
 | 
				
			||||||
        public static bool RemoveThread()
 | 
					        public static bool RemoveThread()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return RemoveThread(Thread.CurrentThread.ManagedThreadId);
 | 
					            return RemoveThread(Thread.CurrentThread.ManagedThreadId);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private static void AddThread(ThreadWatchdogInfo threadInfo)
 | 
					        private static bool RemoveThread(int threadID)
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            m_log.Debug("[WATCHDOG]: Started tracking thread \"" + threadInfo.Thread.Name + "\" (ID " + threadInfo.Thread.ManagedThreadId + ")");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            lock (m_threads)
 | 
					 | 
				
			||||||
                m_threads.Add(threadInfo.Thread.ManagedThreadId, threadInfo);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public static bool RemoveThread(int threadID)
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            lock (m_threads)
 | 
					            lock (m_threads)
 | 
				
			||||||
                return m_threads.Remove(threadID);
 | 
					                return m_threads.Remove(threadID);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<<<<<<< HEAD:OpenSim/Framework/Watchdog.cs
 | 
				
			||||||
 | 
					        public static bool RemoveThread(int threadID)
 | 
				
			||||||
 | 
					=======
 | 
				
			||||||
 | 
					        public static bool AbortThread(int threadID)
 | 
				
			||||||
 | 
					>>>>>>> master:OpenSim/Framework/Watchdog.cs
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            lock (m_threads)
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                if (m_threads.ContainsKey(threadID))
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    ThreadWatchdogInfo twi = m_threads[threadID];
 | 
				
			||||||
 | 
					                    twi.Thread.Abort();
 | 
				
			||||||
 | 
					                    RemoveThread(threadID);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    return true;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    return false;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private static void UpdateThread(int threadID)
 | 
					        private static void UpdateThread(int threadID)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            ThreadWatchdogInfo threadInfo;
 | 
					            ThreadWatchdogInfo threadInfo;
 | 
				
			||||||
| 
						 | 
					@ -144,9 +198,18 @@ namespace OpenSim.Framework
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (m_threads.TryGetValue(threadID, out threadInfo))
 | 
					                if (m_threads.TryGetValue(threadID, out threadInfo))
 | 
				
			||||||
 | 
					<<<<<<< HEAD:OpenSim/Framework/Watchdog.cs
 | 
				
			||||||
                    threadInfo.LastTick = Environment.TickCount;
 | 
					                    threadInfo.LastTick = Environment.TickCount;
 | 
				
			||||||
 | 
					=======
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    threadInfo.LastTick = Environment.TickCount & Int32.MaxValue;
 | 
				
			||||||
 | 
					                    threadInfo.IsTimedOut = false;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					>>>>>>> master:OpenSim/Framework/Watchdog.cs
 | 
				
			||||||
                else
 | 
					                else
 | 
				
			||||||
                    AddThread(new ThreadWatchdogInfo(Thread.CurrentThread));
 | 
					                {
 | 
				
			||||||
 | 
					                    m_log.WarnFormat("[WATCHDOG]: Asked to update thread {0} which is not being monitored", threadID);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            catch { }
 | 
					            catch { }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					@ -157,7 +220,8 @@ namespace OpenSim.Framework
 | 
				
			||||||
        /// <returns></returns>
 | 
					        /// <returns></returns>
 | 
				
			||||||
        public static ThreadWatchdogInfo[] GetThreads()
 | 
					        public static ThreadWatchdogInfo[] GetThreads()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            return m_threads.Values.ToArray();
 | 
					            lock (m_threads)
 | 
				
			||||||
 | 
					                return m_threads.Values.ToArray();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private static void WatchdogTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
 | 
					        private static void WatchdogTimerElapsed(object sender, System.Timers.ElapsedEventArgs e)
 | 
				
			||||||
| 
						 | 
					@ -174,10 +238,16 @@ namespace OpenSim.Framework
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    foreach (ThreadWatchdogInfo threadInfo in m_threads.Values)
 | 
					                    foreach (ThreadWatchdogInfo threadInfo in m_threads.Values)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        if (threadInfo.Thread.ThreadState == ThreadState.Stopped || now - threadInfo.LastTick >= WATCHDOG_TIMEOUT_MS)
 | 
					                        if (threadInfo.Thread.ThreadState == ThreadState.Stopped)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            timedOut = threadInfo;
 | 
					                            timedOut = threadInfo;
 | 
				
			||||||
                            m_threads.Remove(threadInfo.Thread.ManagedThreadId);
 | 
					                            RemoveThread(threadInfo.Thread.ManagedThreadId);
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                        else if (!threadInfo.IsTimedOut && now - threadInfo.LastTick >= threadInfo.Timeout)
 | 
				
			||||||
 | 
					                        {
 | 
				
			||||||
 | 
					                            threadInfo.IsTimedOut = true;
 | 
				
			||||||
 | 
					                            timedOut = threadInfo;
 | 
				
			||||||
                            break;
 | 
					                            break;
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,9 +39,7 @@ using System.Text;
 | 
				
			||||||
using System.Web;
 | 
					using System.Web;
 | 
				
			||||||
using System.Xml;
 | 
					using System.Xml;
 | 
				
			||||||
using System.Xml.Serialization;
 | 
					using System.Xml.Serialization;
 | 
				
			||||||
 | 
					 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using OpenSim.Framework.Servers.HttpServer;
 | 
					 | 
				
			||||||
using OpenMetaverse.StructuredData;
 | 
					using OpenMetaverse.StructuredData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace OpenSim.Framework
 | 
					namespace OpenSim.Framework
 | 
				
			||||||
| 
						 | 
					@ -65,35 +63,35 @@ namespace OpenSim.Framework
 | 
				
			||||||
        // a "long" call for warning & debugging purposes
 | 
					        // a "long" call for warning & debugging purposes
 | 
				
			||||||
        public const int LongCallTime = 500;
 | 
					        public const int LongCallTime = 500;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					//        /// <summary>
 | 
				
			||||||
        /// Send LLSD to an HTTP client in application/llsd+json form
 | 
					//        /// Send LLSD to an HTTP client in application/llsd+json form
 | 
				
			||||||
        /// </summary>
 | 
					//        /// </summary>
 | 
				
			||||||
        /// <param name="response">HTTP response to send the data in</param>
 | 
					//        /// <param name="response">HTTP response to send the data in</param>
 | 
				
			||||||
        /// <param name="body">LLSD to send to the client</param>
 | 
					//        /// <param name="body">LLSD to send to the client</param>
 | 
				
			||||||
        public static void SendJSONResponse(OSHttpResponse response, OSDMap body)
 | 
					//        public static void SendJSONResponse(OSHttpResponse response, OSDMap body)
 | 
				
			||||||
        {
 | 
					//        {
 | 
				
			||||||
            byte[] responseData = Encoding.UTF8.GetBytes(OSDParser.SerializeJsonString(body));
 | 
					//            byte[] responseData = Encoding.UTF8.GetBytes(OSDParser.SerializeJsonString(body));
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
            response.ContentEncoding = Encoding.UTF8;
 | 
					//            response.ContentEncoding = Encoding.UTF8;
 | 
				
			||||||
            response.ContentLength = responseData.Length;
 | 
					//            response.ContentLength = responseData.Length;
 | 
				
			||||||
            response.ContentType = "application/llsd+json";
 | 
					//            response.ContentType = "application/llsd+json";
 | 
				
			||||||
            response.Body.Write(responseData, 0, responseData.Length);
 | 
					//            response.Body.Write(responseData, 0, responseData.Length);
 | 
				
			||||||
        }
 | 
					//        }
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
        /// <summary>
 | 
					//        /// <summary>
 | 
				
			||||||
        /// Send LLSD to an HTTP client in application/llsd+xml form
 | 
					//        /// Send LLSD to an HTTP client in application/llsd+xml form
 | 
				
			||||||
        /// </summary>
 | 
					//        /// </summary>
 | 
				
			||||||
        /// <param name="response">HTTP response to send the data in</param>
 | 
					//        /// <param name="response">HTTP response to send the data in</param>
 | 
				
			||||||
        /// <param name="body">LLSD to send to the client</param>
 | 
					//        /// <param name="body">LLSD to send to the client</param>
 | 
				
			||||||
        public static void SendXMLResponse(OSHttpResponse response, OSDMap body)
 | 
					//        public static void SendXMLResponse(OSHttpResponse response, OSDMap body)
 | 
				
			||||||
        {
 | 
					//        {
 | 
				
			||||||
            byte[] responseData = OSDParser.SerializeLLSDXmlBytes(body);
 | 
					//            byte[] responseData = OSDParser.SerializeLLSDXmlBytes(body);
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
            response.ContentEncoding = Encoding.UTF8;
 | 
					//            response.ContentEncoding = Encoding.UTF8;
 | 
				
			||||||
            response.ContentLength = responseData.Length;
 | 
					//            response.ContentLength = responseData.Length;
 | 
				
			||||||
            response.ContentType = "application/llsd+xml";
 | 
					//            response.ContentType = "application/llsd+xml";
 | 
				
			||||||
            response.Body.Write(responseData, 0, responseData.Length);
 | 
					//            response.Body.Write(responseData, 0, responseData.Length);
 | 
				
			||||||
        }
 | 
					//        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        /// Make a GET or GET-like request to a web service that returns LLSD
 | 
					        /// Make a GET or GET-like request to a web service that returns LLSD
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,7 @@ using Nini.Config;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					using OpenSim.Framework.Console;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Framework.Statistics;
 | 
					using OpenSim.Framework.Statistics;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@ using NUnit.Framework;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenMetaverse.Packets;
 | 
					using OpenMetaverse.Packets;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Framework.Servers.HttpServer;
 | 
					using OpenSim.Framework.Servers.HttpServer;
 | 
				
			||||||
using OpenSim.Region.ClientStack.Linden;
 | 
					using OpenSim.Region.ClientStack.Linden;
 | 
				
			||||||
using OpenSim.Region.CoreModules.Framework;
 | 
					using OpenSim.Region.CoreModules.Framework;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -201,7 +201,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Dialog
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                OpenSim.Framework.Console.MainConsole.Instance.Output(
 | 
					                MainConsole.Instance.Output(
 | 
				
			||||||
                    "Usage: alert <message> | alert-user <first> <last> <message>");
 | 
					                    "Usage: alert <message> | alert-user <first> <last> <message>");
 | 
				
			||||||
                return;
 | 
					                return;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,6 +36,7 @@ using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Servers.HttpServer;
 | 
					using OpenSim.Framework.Servers.HttpServer;
 | 
				
			||||||
using OpenSim.Framework.Communications;
 | 
					using OpenSim.Framework.Communications;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Services.Interfaces;
 | 
					using OpenSim.Services.Interfaces;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,6 +36,7 @@ using Nwc.XmlRpc;
 | 
				
			||||||
using Mono.Addins;
 | 
					using Mono.Addins;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using GridRegion = OpenSim.Services.Interfaces.GridRegion;
 | 
					using GridRegion = OpenSim.Services.Interfaces.GridRegion;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@ using Nini.Config;
 | 
				
			||||||
using Nwc.XmlRpc;
 | 
					using Nwc.XmlRpc;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using GridRegion = OpenSim.Services.Interfaces.GridRegion;
 | 
					using GridRegion = OpenSim.Services.Interfaces.GridRegion;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,6 +35,7 @@ using Mono.Addins;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					using OpenSim.Framework.Console;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using Caps=OpenSim.Framework.Capabilities.Caps;
 | 
					using Caps=OpenSim.Framework.Capabilities.Caps;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,7 @@ using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.CoreModules.Framework.Monitoring.Alerts;
 | 
					using OpenSim.Region.CoreModules.Framework.Monitoring.Alerts;
 | 
				
			||||||
using OpenSim.Region.CoreModules.Framework.Monitoring.Monitors;
 | 
					using OpenSim.Region.CoreModules.Framework.Monitoring.Monitors;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,6 +37,7 @@ using Nwc.XmlRpc;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Communications;
 | 
					using OpenSim.Framework.Communications;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,6 +40,7 @@ using OpenMetaverse;
 | 
				
			||||||
using OpenMetaverse.StructuredData;
 | 
					using OpenMetaverse.StructuredData;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Capabilities;
 | 
					using OpenSim.Framework.Capabilities;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using Caps=OpenSim.Framework.Capabilities.Caps;
 | 
					using Caps=OpenSim.Framework.Capabilities.Caps;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@ using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Framework.Servers.HttpServer;
 | 
					using OpenSim.Framework.Servers.HttpServer;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					@ -59,9 +60,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Inventory
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    m_log.Info("[INVENTORY IN CONNECTOR]: Inventory Service In Connector enabled");
 | 
					                    m_log.Info("[INVENTORY IN CONNECTOR]: Inventory Service In Connector enabled");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void PostInitialise()
 | 
					        public void PostInitialise()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,6 +32,7 @@ using log4net;
 | 
				
			||||||
using Mono.Addins;
 | 
					using Mono.Addins;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2137,10 +2137,6 @@ namespace OpenSim.Region.Framework.Scenes
 | 
				
			||||||
        public void PhysicsCollision(EventArgs e)
 | 
					        public void PhysicsCollision(EventArgs e)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            // single threaded here
 | 
					            // single threaded here
 | 
				
			||||||
            if (e == null)
 | 
					 | 
				
			||||||
            {
 | 
					 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            CollisionEventUpdate a = (CollisionEventUpdate)e;
 | 
					            CollisionEventUpdate a = (CollisionEventUpdate)e;
 | 
				
			||||||
            Dictionary<uint, ContactPoint> collissionswith = a.m_objCollisionList;
 | 
					            Dictionary<uint, ContactPoint> collissionswith = a.m_objCollisionList;
 | 
				
			||||||
| 
						 | 
					@ -2302,6 +2298,7 @@ namespace OpenSim.Region.Framework.Scenes
 | 
				
			||||||
                            });
 | 
					                            });
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    if (colliding.Count > 0)
 | 
					                    if (colliding.Count > 0)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        StartCollidingMessage.Colliders = colliding;
 | 
					                        StartCollidingMessage.Colliders = colliding;
 | 
				
			||||||
| 
						 | 
					@ -2309,10 +2306,11 @@ namespace OpenSim.Region.Framework.Scenes
 | 
				
			||||||
                        if (m_parentGroup.Scene == null)
 | 
					                        if (m_parentGroup.Scene == null)
 | 
				
			||||||
                            return;
 | 
					                            return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (m_parentGroup.PassCollision == true)
 | 
					//                        if (m_parentGroup.PassCollision == true)
 | 
				
			||||||
                        {
 | 
					//                        {
 | 
				
			||||||
                            //TODO: Add pass to root prim!
 | 
					//                            //TODO: Add pass to root prim!
 | 
				
			||||||
                        }
 | 
					//                        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage);
 | 
					                        m_parentGroup.Scene.EventManager.TriggerScriptCollidingStart(LocalId, StartCollidingMessage);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3649,9 +3649,6 @@ namespace OpenSim.Region.Framework.Scenes
 | 
				
			||||||
        // Event called by the physics plugin to tell the avatar about a collision.
 | 
					        // Event called by the physics plugin to tell the avatar about a collision.
 | 
				
			||||||
        private void PhysicsCollisionUpdate(EventArgs e)
 | 
					        private void PhysicsCollisionUpdate(EventArgs e)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (e == null)
 | 
					 | 
				
			||||||
                return;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            //if ((Math.Abs(Velocity.X) > 0.1e-9f) || (Math.Abs(Velocity.Y) > 0.1e-9f))
 | 
					            //if ((Math.Abs(Velocity.X) > 0.1e-9f) || (Math.Abs(Velocity.Y) > 0.1e-9f))
 | 
				
			||||||
            // The Physics Scene will send updates every 500 ms grep: PhysicsActor.SubscribeEvents(
 | 
					            // The Physics Scene will send updates every 500 ms grep: PhysicsActor.SubscribeEvents(
 | 
				
			||||||
            // as of this comment the interval is set in AddToPhysicalScene
 | 
					            // as of this comment the interval is set in AddToPhysicalScene
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,6 +32,7 @@ using NUnit.Framework;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Communications;
 | 
					using OpenSim.Framework.Communications;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation;
 | 
					using OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation;
 | 
				
			||||||
using OpenSim.Tests.Common;
 | 
					using OpenSim.Tests.Common;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@ using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using Nwc.XmlRpc;
 | 
					using Nwc.XmlRpc;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Collections.Generic;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Framework.Servers.HttpServer;
 | 
					using OpenSim.Framework.Servers.HttpServer;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,7 +36,7 @@ using Nwc.XmlRpc;
 | 
				
			||||||
using Mono.Addins;
 | 
					using Mono.Addins;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Framework.Servers.HttpServer;
 | 
					using OpenSim.Framework.Servers.HttpServer;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,6 +36,7 @@ using Nini.Config;
 | 
				
			||||||
using OpenMetaverse;
 | 
					using OpenMetaverse;
 | 
				
			||||||
using OpenMetaverse.Imaging;
 | 
					using OpenMetaverse.Imaging;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Region.Framework.Interfaces;
 | 
					using OpenSim.Region.Framework.Interfaces;
 | 
				
			||||||
using OpenSim.Region.Framework.Scenes;
 | 
					using OpenSim.Region.Framework.Scenes;
 | 
				
			||||||
using OpenSim.Server.Base;
 | 
					using OpenSim.Server.Base;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -443,7 +443,7 @@ public class BSCharacter : PhysicsActor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Dictionary<uint, ContactPoint> contactPoints = new Dictionary<uint, ContactPoint>();
 | 
					        Dictionary<uint, ContactPoint> contactPoints = new Dictionary<uint, ContactPoint>();
 | 
				
			||||||
        contactPoints.Add(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth));
 | 
					        contactPoints.Add(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth));
 | 
				
			||||||
        CollisionEventUpdate args = new CollisionEventUpdate(LocalID, (int)type, 1, contactPoints);
 | 
					        CollisionEventUpdate args = new CollisionEventUpdate(contactPoints);
 | 
				
			||||||
        base.SendCollisionUpdate(args);
 | 
					        base.SendCollisionUpdate(args);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1350,7 +1350,7 @@ public sealed class BSPrim : PhysicsActor
 | 
				
			||||||
        // create the event for the collision
 | 
					        // create the event for the collision
 | 
				
			||||||
        Dictionary<uint, ContactPoint> contactPoints = new Dictionary<uint, ContactPoint>();
 | 
					        Dictionary<uint, ContactPoint> contactPoints = new Dictionary<uint, ContactPoint>();
 | 
				
			||||||
        contactPoints.Add(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth));
 | 
					        contactPoints.Add(collidingWith, new ContactPoint(contactPoint, contactNormal, pentrationDepth));
 | 
				
			||||||
        CollisionEventUpdate args = new CollisionEventUpdate(LocalID, (int)type, 1, contactPoints);
 | 
					        CollisionEventUpdate args = new CollisionEventUpdate(contactPoints);
 | 
				
			||||||
        base.SendCollisionUpdate(args);
 | 
					        base.SendCollisionUpdate(args);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -66,42 +66,29 @@ namespace OpenSim.Region.Physics.Manager
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /// <summary>
 | 
				
			||||||
 | 
					    /// Used to pass collision information to OnCollisionUpdate listeners.
 | 
				
			||||||
 | 
					    /// </summary>
 | 
				
			||||||
    public class CollisionEventUpdate : EventArgs
 | 
					    public class CollisionEventUpdate : EventArgs
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        // Raising the event on the object, so don't need to provide location..  further up the tree knows that info.
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Number of collision events in this update.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public int Count { get { return m_objCollisionList.Count; } }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public int m_colliderType;
 | 
					        public Dictionary<uint, ContactPoint> m_objCollisionList;
 | 
				
			||||||
        public int m_GenericStartEnd;
 | 
					 | 
				
			||||||
        //public uint m_LocalID;
 | 
					 | 
				
			||||||
        public Dictionary<uint, ContactPoint> m_objCollisionList = new Dictionary<uint, ContactPoint>();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public CollisionEventUpdate(uint localID, int colliderType, int GenericStartEnd, Dictionary<uint, ContactPoint> objCollisionList)
 | 
					        public CollisionEventUpdate(Dictionary<uint, ContactPoint> objCollisionList)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            m_colliderType = colliderType;
 | 
					 | 
				
			||||||
            m_GenericStartEnd = GenericStartEnd;
 | 
					 | 
				
			||||||
            m_objCollisionList = objCollisionList;
 | 
					            m_objCollisionList = objCollisionList;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public CollisionEventUpdate()
 | 
					        public CollisionEventUpdate()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            m_colliderType = (int) ActorTypes.Unknown;
 | 
					 | 
				
			||||||
            m_GenericStartEnd = 1;
 | 
					 | 
				
			||||||
            m_objCollisionList = new Dictionary<uint, ContactPoint>();
 | 
					            m_objCollisionList = new Dictionary<uint, ContactPoint>();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public int collidertype
 | 
					        public void AddCollider(uint localID, ContactPoint contact)
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            get { return m_colliderType; }
 | 
					 | 
				
			||||||
            set { m_colliderType = value; }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public int GenericStartEnd
 | 
					 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            get { return m_GenericStartEnd; }
 | 
					 | 
				
			||||||
            set { m_GenericStartEnd = value; }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        public void addCollider(uint localID, ContactPoint contact)
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (!m_objCollisionList.ContainsKey(localID))
 | 
					            if (!m_objCollisionList.ContainsKey(localID))
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
| 
						 | 
					@ -113,6 +100,14 @@ namespace OpenSim.Region.Physics.Manager
 | 
				
			||||||
                    m_objCollisionList[localID] = contact;
 | 
					                    m_objCollisionList[localID] = contact;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Clear added collision events.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
 | 
					        public void Clear()
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            m_objCollisionList.Clear();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public abstract class PhysicsActor
 | 
					    public abstract class PhysicsActor
 | 
				
			||||||
| 
						 | 
					@ -127,7 +122,13 @@ namespace OpenSim.Region.Physics.Manager
 | 
				
			||||||
        public event VelocityUpdate OnVelocityUpdate;
 | 
					        public event VelocityUpdate OnVelocityUpdate;
 | 
				
			||||||
        public event OrientationUpdate OnOrientationUpdate;
 | 
					        public event OrientationUpdate OnOrientationUpdate;
 | 
				
			||||||
        public event RequestTerseUpdate OnRequestTerseUpdate;
 | 
					        public event RequestTerseUpdate OnRequestTerseUpdate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /// <summary>
 | 
				
			||||||
 | 
					        /// Subscribers to this event must synchronously handle the dictionary of collisions received, since the event
 | 
				
			||||||
 | 
					        /// object is reused in subsequent physics frames.
 | 
				
			||||||
 | 
					        /// </summary>
 | 
				
			||||||
        public event CollisionUpdate OnCollisionUpdate;
 | 
					        public event CollisionUpdate OnCollisionUpdate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public event OutOfBounds OnOutOfBounds;
 | 
					        public event OutOfBounds OnOutOfBounds;
 | 
				
			||||||
#pragma warning restore 67
 | 
					#pragma warning restore 67
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1210,11 +1210,13 @@ namespace OpenSim.Region.Physics.OdePlugin
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            m_requestedUpdateFrequency = ms;
 | 
					            m_requestedUpdateFrequency = ms;
 | 
				
			||||||
            m_eventsubscription = ms;
 | 
					            m_eventsubscription = ms;
 | 
				
			||||||
 | 
					            CollisionEventsThisFrame.Clear();
 | 
				
			||||||
            _parent_scene.AddCollisionEventReporting(this);
 | 
					            _parent_scene.AddCollisionEventReporting(this);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public override void UnSubscribeEvents()
 | 
					        public override void UnSubscribeEvents()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					            CollisionEventsThisFrame.Clear();
 | 
				
			||||||
            _parent_scene.RemoveCollisionEventReporting(this);
 | 
					            _parent_scene.RemoveCollisionEventReporting(this);
 | 
				
			||||||
            m_requestedUpdateFrequency = 0;
 | 
					            m_requestedUpdateFrequency = 0;
 | 
				
			||||||
            m_eventsubscription = 0;
 | 
					            m_eventsubscription = 0;
 | 
				
			||||||
| 
						 | 
					@ -1227,7 +1229,7 @@ namespace OpenSim.Region.Physics.OdePlugin
 | 
				
			||||||
//                m_log.DebugFormat(
 | 
					//                m_log.DebugFormat(
 | 
				
			||||||
//                    "[PHYSICS]: Adding collision event for {0}, collidedWith {1}, contact {2}", "", CollidedWith, contact);
 | 
					//                    "[PHYSICS]: Adding collision event for {0}, collidedWith {1}, contact {2}", "", CollidedWith, contact);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                CollisionEventsThisFrame.addCollider(CollidedWith, contact);
 | 
					                CollisionEventsThisFrame.AddCollider(CollidedWith, contact);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1235,11 +1237,9 @@ namespace OpenSim.Region.Physics.OdePlugin
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (m_eventsubscription > m_requestedUpdateFrequency)
 | 
					            if (m_eventsubscription > m_requestedUpdateFrequency)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (CollisionEventsThisFrame != null)
 | 
					                base.SendCollisionUpdate(CollisionEventsThisFrame);
 | 
				
			||||||
                {
 | 
					
 | 
				
			||||||
                    base.SendCollisionUpdate(CollisionEventsThisFrame);
 | 
					                CollisionEventsThisFrame.Clear();
 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                CollisionEventsThisFrame = new CollisionEventUpdate();
 | 
					 | 
				
			||||||
                m_eventsubscription = 0;
 | 
					                m_eventsubscription = 0;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -191,7 +191,7 @@ namespace OpenSim.Region.Physics.OdePlugin
 | 
				
			||||||
        private d.Mass pMass;
 | 
					        private d.Mass pMass;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private int m_eventsubscription;
 | 
					        private int m_eventsubscription;
 | 
				
			||||||
        private CollisionEventUpdate CollisionEventsThisFrame;
 | 
					        private CollisionEventUpdate CollisionEventsThisFrame = new CollisionEventUpdate();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        private IntPtr m_linkJoint = IntPtr.Zero;
 | 
					        private IntPtr m_linkJoint = IntPtr.Zero;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3020,23 +3020,13 @@ Console.WriteLine(" JointCreateFixed");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void AddCollisionEvent(uint CollidedWith, ContactPoint contact)
 | 
					        public void AddCollisionEvent(uint CollidedWith, ContactPoint contact)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (CollisionEventsThisFrame == null)
 | 
					            CollisionEventsThisFrame.AddCollider(CollidedWith, contact);
 | 
				
			||||||
                CollisionEventsThisFrame = new CollisionEventUpdate();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            CollisionEventsThisFrame.addCollider(CollidedWith, contact);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public void SendCollisions()
 | 
					        public void SendCollisions()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (CollisionEventsThisFrame == null)
 | 
					            if (CollisionEventsThisFrame.Count > 0)
 | 
				
			||||||
                return;
 | 
					                base.SendCollisionUpdate(CollisionEventsThisFrame);
 | 
				
			||||||
 | 
					 | 
				
			||||||
            base.SendCollisionUpdate(CollisionEventsThisFrame);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (CollisionEventsThisFrame.m_objCollisionList.Count == 0)
 | 
					 | 
				
			||||||
                CollisionEventsThisFrame = null;
 | 
					 | 
				
			||||||
            else
 | 
					 | 
				
			||||||
                CollisionEventsThisFrame = new CollisionEventUpdate();
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public override bool SubscribedEvents()
 | 
					        public override bool SubscribedEvents()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1633,6 +1633,8 @@ namespace OpenSim.Region.Physics.OdePlugin
 | 
				
			||||||
        /// <param name="obj"></param>
 | 
					        /// <param name="obj"></param>
 | 
				
			||||||
        internal void AddCollisionEventReporting(PhysicsActor obj)
 | 
					        internal void AddCollisionEventReporting(PhysicsActor obj)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					//            m_log.DebugFormat("[PHYSICS]: Adding {0} to collision event reporting", obj.SOPName);
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
            lock (_collisionEventPrim)
 | 
					            lock (_collisionEventPrim)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                if (!_collisionEventPrim.Contains(obj))
 | 
					                if (!_collisionEventPrim.Contains(obj))
 | 
				
			||||||
| 
						 | 
					@ -1646,11 +1648,10 @@ namespace OpenSim.Region.Physics.OdePlugin
 | 
				
			||||||
        /// <param name="obj"></param>
 | 
					        /// <param name="obj"></param>
 | 
				
			||||||
        internal void RemoveCollisionEventReporting(PhysicsActor obj)
 | 
					        internal void RemoveCollisionEventReporting(PhysicsActor obj)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
 | 
					//            m_log.DebugFormat("[PHYSICS]: Removing {0} from collision event reporting", obj.SOPName);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            lock (_collisionEventPrim)
 | 
					            lock (_collisionEventPrim)
 | 
				
			||||||
            {
 | 
					                _collisionEventPrim.Remove(obj);
 | 
				
			||||||
                if (!_collisionEventPrim.Contains(obj))
 | 
					 | 
				
			||||||
                    _collisionEventPrim.Remove(obj);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        #region Add/Remove Entities
 | 
					        #region Add/Remove Entities
 | 
				
			||||||
| 
						 | 
					@ -2859,14 +2860,14 @@ Console.WriteLine("AddPhysicsActorTaint to " + taintedprim.Name);
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    //if (timeStep < 0.2f)
 | 
					                    //if (timeStep < 0.2f)
 | 
				
			||||||
                    {
 | 
					                    {
 | 
				
			||||||
                        foreach (OdePrim actor in _activeprims)
 | 
					                        foreach (OdePrim prim in _activeprims)
 | 
				
			||||||
                        {
 | 
					                        {
 | 
				
			||||||
                            if (actor.IsPhysical && (d.BodyIsEnabled(actor.Body) || !actor._zeroFlag))
 | 
					                            if (prim.IsPhysical && (d.BodyIsEnabled(prim.Body) || !prim._zeroFlag))
 | 
				
			||||||
                            {
 | 
					                            {
 | 
				
			||||||
                                actor.UpdatePositionAndVelocity();
 | 
					                                prim.UpdatePositionAndVelocity();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                                if (SupportsNINJAJoints)
 | 
					                                if (SupportsNINJAJoints)
 | 
				
			||||||
                                    SimulateActorPendingJoints(actor);
 | 
					                                    SimulateActorPendingJoints(prim);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ using System.Threading;
 | 
				
			||||||
using System.Reflection;
 | 
					using System.Reflection;
 | 
				
			||||||
using OpenSim.Framework;
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					using OpenSim.Framework.Console;
 | 
				
			||||||
 | 
					using OpenSim.Framework.Servers;
 | 
				
			||||||
using OpenSim.Framework.Servers.HttpServer;
 | 
					using OpenSim.Framework.Servers.HttpServer;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,6 +30,7 @@ using System.IO;
 | 
				
			||||||
using System.Xml;
 | 
					using System.Xml;
 | 
				
			||||||
using System.Threading;
 | 
					using System.Threading;
 | 
				
			||||||
using System.Reflection;
 | 
					using System.Reflection;
 | 
				
			||||||
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					using OpenSim.Framework.Console;
 | 
				
			||||||
using log4net;
 | 
					using log4net;
 | 
				
			||||||
using log4net.Config;
 | 
					using log4net.Config;
 | 
				
			||||||
| 
						 | 
					@ -208,7 +209,7 @@ namespace OpenSim.Server.Base
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            else
 | 
					            else
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                consoleAppender.Console = MainConsole.Instance;
 | 
					                consoleAppender.Console = (ConsoleBase)MainConsole.Instance;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (null == consoleAppender.Threshold)
 | 
					                if (null == consoleAppender.Threshold)
 | 
				
			||||||
                    consoleAppender.Threshold = Level.All;
 | 
					                    consoleAppender.Threshold = Level.All;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,6 +27,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using System;
 | 
					using System;
 | 
				
			||||||
using Nini.Config;
 | 
					using Nini.Config;
 | 
				
			||||||
 | 
					using OpenSim.Framework;
 | 
				
			||||||
using OpenSim.Framework.Console;
 | 
					using OpenSim.Framework.Console;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace pCampBot
 | 
					namespace pCampBot
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										146
									
								
								prebuild.xml
								
								
								
								
							
							
						
						
									
										146
									
								
								prebuild.xml
								
								
								
								
							| 
						 | 
					@ -55,68 +55,6 @@
 | 
				
			||||||
        </Project>
 | 
					        </Project>
 | 
				
			||||||
-->
 | 
					-->
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <Project frameworkVersion="v3_5" name="OpenSim.Framework.Servers.HttpServer" path="OpenSim/Framework/Servers/HttpServer" type="Library">
 | 
					 | 
				
			||||||
      <Configuration name="Debug">
 | 
					 | 
				
			||||||
        <Options>
 | 
					 | 
				
			||||||
          <OutputPath>../../../../bin/</OutputPath>
 | 
					 | 
				
			||||||
        </Options>
 | 
					 | 
				
			||||||
      </Configuration>
 | 
					 | 
				
			||||||
      <Configuration name="Release">
 | 
					 | 
				
			||||||
        <Options>
 | 
					 | 
				
			||||||
          <OutputPath>../../../../bin/</OutputPath>
 | 
					 | 
				
			||||||
        </Options>
 | 
					 | 
				
			||||||
      </Configuration>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <ReferencePath>../../../../bin/</ReferencePath>
 | 
					 | 
				
			||||||
      <Reference name="System"/>
 | 
					 | 
				
			||||||
      <Reference name="System.Xml"/>
 | 
					 | 
				
			||||||
      <Reference name="System.Web"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenMetaverse.StructuredData" path="../../../../bin/"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenMetaverseTypes" path="../../../../bin/"/>
 | 
					 | 
				
			||||||
      <Reference name="XMLRPC" path="../../../../bin/"/>
 | 
					 | 
				
			||||||
      <Reference name="log4net" path="../../../../bin/"/>
 | 
					 | 
				
			||||||
      <Reference name="HttpServer_OpenSim" path="../../../../bin/"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <Files>
 | 
					 | 
				
			||||||
        <Match pattern="*.cs" recurse="true">
 | 
					 | 
				
			||||||
          <Exclude pattern="Tests"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          <!-- on temporary suspension -->
 | 
					 | 
				
			||||||
          <Exclude pattern="OSHttpHandler\.cs"/>
 | 
					 | 
				
			||||||
          <Exclude pattern="OSHttpHttpHandler\.cs"/>
 | 
					 | 
				
			||||||
          <Exclude pattern="OSHttpRequestPump\.cs"/>
 | 
					 | 
				
			||||||
          <Exclude pattern="OSHttpRequestQueue\.cs"/>
 | 
					 | 
				
			||||||
          <Exclude pattern="OSHttpServer.*\.cs"/>
 | 
					 | 
				
			||||||
          <Exclude pattern="OSHttpXmlRpcHandler.*\.cs"/>
 | 
					 | 
				
			||||||
        </Match>
 | 
					 | 
				
			||||||
      </Files>
 | 
					 | 
				
			||||||
    </Project>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <Project frameworkVersion="v3_5" name="OpenSim.Framework.Console" path="OpenSim/Framework/Console" type="Library">
 | 
					 | 
				
			||||||
      <Configuration name="Debug">
 | 
					 | 
				
			||||||
        <Options>
 | 
					 | 
				
			||||||
          <OutputPath>../../../bin/</OutputPath>
 | 
					 | 
				
			||||||
        </Options>
 | 
					 | 
				
			||||||
      </Configuration>
 | 
					 | 
				
			||||||
      <Configuration name="Release">
 | 
					 | 
				
			||||||
        <Options>
 | 
					 | 
				
			||||||
          <OutputPath>../../../bin/</OutputPath>
 | 
					 | 
				
			||||||
        </Options>
 | 
					 | 
				
			||||||
      </Configuration>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      <ReferencePath>../../../bin/</ReferencePath>
 | 
					 | 
				
			||||||
      <Reference name="System"/>
 | 
					 | 
				
			||||||
      <Reference name="System.Xml"/>
 | 
					 | 
				
			||||||
      <Reference name="System.Web"/>
 | 
					 | 
				
			||||||
      <Reference name="log4net" path="../../../bin/"/>
 | 
					 | 
				
			||||||
      <Reference name="Nini" path="../../../bin/"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenMetaverseTypes" path="../../../bin/"/>
 | 
					 | 
				
			||||||
      <Files>
 | 
					 | 
				
			||||||
        <Match pattern="*.cs" recurse="true"/>
 | 
					 | 
				
			||||||
      </Files>
 | 
					 | 
				
			||||||
    </Project>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <Project frameworkVersion="v3_5" name="SmartThreadPool" path="ThirdParty/SmartThreadPool" type="Library">
 | 
					    <Project frameworkVersion="v3_5" name="SmartThreadPool" path="ThirdParty/SmartThreadPool" type="Library">
 | 
				
			||||||
      <Configuration name="Debug">
 | 
					      <Configuration name="Debug">
 | 
				
			||||||
        <Options>
 | 
					        <Options>
 | 
				
			||||||
| 
						 | 
					@ -162,8 +100,8 @@
 | 
				
			||||||
      <Reference name="OpenMetaverse" path="../../bin/"/>
 | 
					      <Reference name="OpenMetaverse" path="../../bin/"/>
 | 
				
			||||||
      <Reference name="OpenMetaverse.StructuredData" path="../../bin/"/>
 | 
					      <Reference name="OpenMetaverse.StructuredData" path="../../bin/"/>
 | 
				
			||||||
      <Reference name="XMLRPC" path="../../bin/"/>
 | 
					      <Reference name="XMLRPC" path="../../bin/"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Console"/>
 | 
					      <!-- <Reference name="OpenSim.Framework.Console"/> -->
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
					      <!-- <Reference name="OpenSim.Framework.Servers.HttpServer"/> -->
 | 
				
			||||||
      <Reference name="Nini" path="../../bin/"/>
 | 
					      <Reference name="Nini" path="../../bin/"/>
 | 
				
			||||||
      <Reference name="log4net" path="../../bin/"/>
 | 
					      <Reference name="log4net" path="../../bin/"/>
 | 
				
			||||||
      <Reference name="Mono.Addins" path="../../bin/"/>
 | 
					      <Reference name="Mono.Addins" path="../../bin/"/>
 | 
				
			||||||
| 
						 | 
					@ -174,6 +112,70 @@
 | 
				
			||||||
      </Files>
 | 
					      </Files>
 | 
				
			||||||
    </Project>
 | 
					    </Project>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <Project frameworkVersion="v3_5" name="OpenSim.Framework.Servers.HttpServer" path="OpenSim/Framework/Servers/HttpServer" type="Library">
 | 
				
			||||||
 | 
					      <Configuration name="Debug">
 | 
				
			||||||
 | 
					        <Options>
 | 
				
			||||||
 | 
					          <OutputPath>../../../../bin/</OutputPath>
 | 
				
			||||||
 | 
					        </Options>
 | 
				
			||||||
 | 
					      </Configuration>
 | 
				
			||||||
 | 
					      <Configuration name="Release">
 | 
				
			||||||
 | 
					        <Options>
 | 
				
			||||||
 | 
					          <OutputPath>../../../../bin/</OutputPath>
 | 
				
			||||||
 | 
					        </Options>
 | 
				
			||||||
 | 
					      </Configuration>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <ReferencePath>../../../../bin/</ReferencePath>
 | 
				
			||||||
 | 
					      <Reference name="System"/>
 | 
				
			||||||
 | 
					      <Reference name="System.Xml"/>
 | 
				
			||||||
 | 
					      <Reference name="System.Web"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenMetaverse.StructuredData" path="../../../../bin/"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenMetaverseTypes" path="../../../../bin/"/>
 | 
				
			||||||
 | 
					      <Reference name="XMLRPC" path="../../../../bin/"/>
 | 
				
			||||||
 | 
					      <Reference name="log4net" path="../../../../bin/"/>
 | 
				
			||||||
 | 
					      <Reference name="HttpServer_OpenSim" path="../../../../bin/"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <Files>
 | 
				
			||||||
 | 
					        <Match pattern="*.cs" recurse="true">
 | 
				
			||||||
 | 
					          <Exclude pattern="Tests"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          <!-- on temporary suspension -->
 | 
				
			||||||
 | 
					          <Exclude pattern="OSHttpHandler\.cs"/>
 | 
				
			||||||
 | 
					          <Exclude pattern="OSHttpHttpHandler\.cs"/>
 | 
				
			||||||
 | 
					          <Exclude pattern="OSHttpRequestPump\.cs"/>
 | 
				
			||||||
 | 
					          <Exclude pattern="OSHttpRequestQueue\.cs"/>
 | 
				
			||||||
 | 
					          <Exclude pattern="OSHttpServer.*\.cs"/>
 | 
				
			||||||
 | 
					          <Exclude pattern="OSHttpXmlRpcHandler.*\.cs"/>
 | 
				
			||||||
 | 
					        </Match>
 | 
				
			||||||
 | 
					      </Files>
 | 
				
			||||||
 | 
					    </Project>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <Project frameworkVersion="v3_5" name="OpenSim.Framework.Console" path="OpenSim/Framework/Console" type="Library">
 | 
				
			||||||
 | 
					      <Configuration name="Debug">
 | 
				
			||||||
 | 
					        <Options>
 | 
				
			||||||
 | 
					          <OutputPath>../../../bin/</OutputPath>
 | 
				
			||||||
 | 
					        </Options>
 | 
				
			||||||
 | 
					      </Configuration>
 | 
				
			||||||
 | 
					      <Configuration name="Release">
 | 
				
			||||||
 | 
					        <Options>
 | 
				
			||||||
 | 
					          <OutputPath>../../../bin/</OutputPath>
 | 
				
			||||||
 | 
					        </Options>
 | 
				
			||||||
 | 
					      </Configuration>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <ReferencePath>../../../bin/</ReferencePath>
 | 
				
			||||||
 | 
					      <Reference name="System"/>
 | 
				
			||||||
 | 
					      <Reference name="System.Xml"/>
 | 
				
			||||||
 | 
					      <Reference name="System.Web"/>
 | 
				
			||||||
 | 
					      <Reference name="log4net" path="../../../bin/"/>
 | 
				
			||||||
 | 
					      <Reference name="Nini" path="../../../bin/"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenMetaverseTypes" path="../../../bin/"/>
 | 
				
			||||||
 | 
					      <Files>
 | 
				
			||||||
 | 
					        <Match pattern="*.cs" recurse="true"/>
 | 
				
			||||||
 | 
					      </Files>
 | 
				
			||||||
 | 
					    </Project>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <Project frameworkVersion="v3_5" name="OpenSim.Services.Interfaces" path="OpenSim/Services/Interfaces" type="Library">
 | 
					    <Project frameworkVersion="v3_5" name="OpenSim.Services.Interfaces" path="OpenSim/Services/Interfaces" type="Library">
 | 
				
			||||||
      <Configuration name="Debug">
 | 
					      <Configuration name="Debug">
 | 
				
			||||||
        <Options>
 | 
					        <Options>
 | 
				
			||||||
| 
						 | 
					@ -840,6 +842,7 @@
 | 
				
			||||||
      <Reference name="OpenMetaverse" path="../../../bin/"/>
 | 
					      <Reference name="OpenMetaverse" path="../../../bin/"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework"/>
 | 
					      <Reference name="OpenSim.Framework"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Console"/>
 | 
					      <Reference name="OpenSim.Framework.Console"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework.Servers"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
					      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
				
			||||||
      <Reference name="Nini" path="../../../bin/"/>
 | 
					      <Reference name="Nini" path="../../../bin/"/>
 | 
				
			||||||
      <Reference name="log4net" path="../../../bin/"/>
 | 
					      <Reference name="log4net" path="../../../bin/"/>
 | 
				
			||||||
| 
						 | 
					@ -1505,21 +1508,21 @@
 | 
				
			||||||
      <Reference name="CSJ2K" path="../../../bin/"/>
 | 
					      <Reference name="CSJ2K" path="../../../bin/"/>
 | 
				
			||||||
      <Reference name="Warp3D" path="../../../bin/" localCopy="true"/>
 | 
					      <Reference name="Warp3D" path="../../../bin/" localCopy="true"/>
 | 
				
			||||||
      <Reference name="OpenSim.Capabilities"/>
 | 
					      <Reference name="OpenSim.Capabilities"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Data"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework"/>
 | 
					      <Reference name="OpenSim.Framework"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Communications"/>
 | 
					      <Reference name="OpenSim.Framework.Communications"/>
 | 
				
			||||||
      <Reference name="OpenSim.Data"/>
 | 
					      <Reference name="OpenSim.Framework.Console"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework.Serialization"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework.Servers"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework.Statistics"/>
 | 
				
			||||||
      <Reference name="OpenSim.Region.Framework"/>
 | 
					      <Reference name="OpenSim.Region.Framework"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Region.Physics.Manager"/>
 | 
				
			||||||
      <Reference name="OpenSim.Server.Base"/>
 | 
					      <Reference name="OpenSim.Server.Base"/>
 | 
				
			||||||
      <Reference name="OpenSim.Server.Handlers"/>
 | 
					      <Reference name="OpenSim.Server.Handlers"/>
 | 
				
			||||||
      <Reference name="OpenSim.Services.Connectors"/>
 | 
					      <Reference name="OpenSim.Services.Connectors"/>
 | 
				
			||||||
      <Reference name="OpenSim.Services.Base"/>
 | 
					      <Reference name="OpenSim.Services.Base"/>
 | 
				
			||||||
      <Reference name="OpenSim.Services.Interfaces"/>
 | 
					      <Reference name="OpenSim.Services.Interfaces"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Serialization"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenSim.Framework.Console"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenSim.Framework.Servers"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenSim.Framework.Statistics"/>
 | 
					 | 
				
			||||||
      <Reference name="OpenSim.Region.Physics.Manager"/>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <Reference name="GlynnTucker.Cache" path="../../../bin/"/>
 | 
					      <Reference name="GlynnTucker.Cache" path="../../../bin/"/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3122,6 +3125,7 @@
 | 
				
			||||||
      <Reference name="OpenMetaverseTypes" path="../../../../../bin/"/>
 | 
					      <Reference name="OpenMetaverseTypes" path="../../../../../bin/"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework"/>
 | 
					      <Reference name="OpenSim.Framework"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Communications"/>
 | 
					      <Reference name="OpenSim.Framework.Communications"/>
 | 
				
			||||||
 | 
					      <Reference name="OpenSim.Framework.Servers"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
					      <Reference name="OpenSim.Framework.Servers.HttpServer"/>
 | 
				
			||||||
      <Reference name="OpenSim.Framework.Statistics"/>
 | 
					      <Reference name="OpenSim.Framework.Statistics"/>
 | 
				
			||||||
      <Reference name="OpenSim.Region.ClientStack.LindenCaps"/>
 | 
					      <Reference name="OpenSim.Region.ClientStack.LindenCaps"/>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue