Merge branch 'bigmerge' of ssh://3dhosting.de/var/git/careminster into bigmerge
commit
c763419043
|
@ -73,4 +73,20 @@ TAGS
|
||||||
Makefile.local
|
Makefile.local
|
||||||
bin/.version
|
bin/.version
|
||||||
compile.bat
|
compile.bat
|
||||||
|
addon-modules
|
||||||
|
OpenSim/Data/Tests/test-results/
|
||||||
|
OpenSim/Framework/Serialization/Tests/test-results/
|
||||||
|
OpenSim/Framework/Servers/Tests/test-results/
|
||||||
|
OpenSim/Framework/Tests/test-results/
|
||||||
|
OpenSim/Region/ClientStack/Linden/Caps/test-results/
|
||||||
|
OpenSim/Region/ClientStack/Linden/UDP/Tests/test-results/
|
||||||
|
OpenSim/Region/CoreModules/test-results/
|
||||||
|
OpenSim/Region/Framework/test-results/
|
||||||
|
OpenSim/Region/OptionalModules/test-results/
|
||||||
|
OpenSim/Region/Physics/BulletDotNETPlugin/
|
||||||
|
OpenSim/Region/Physics/Manager/test-results/
|
||||||
|
OpenSim/Region/Physics/OdePlugin/Tests/test-results/
|
||||||
|
OpenSim/Region/ScriptEngine/test-results/
|
||||||
|
OpenSim/Tests/Common/test-results/
|
||||||
|
OpenSim/Tests/test-results/
|
||||||
|
test-results/
|
||||||
|
|
|
@ -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,40 @@ 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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool AbortThread(int threadID)
|
||||||
|
{
|
||||||
|
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 +194,14 @@ namespace OpenSim.Framework
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (m_threads.TryGetValue(threadID, out threadInfo))
|
if (m_threads.TryGetValue(threadID, out threadInfo))
|
||||||
threadInfo.LastTick = Environment.TickCount;
|
{
|
||||||
|
threadInfo.LastTick = Environment.TickCount & Int32.MaxValue;
|
||||||
|
threadInfo.IsTimedOut = false;
|
||||||
|
}
|
||||||
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 +212,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 +230,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;
|
||||||
|
|
|
@ -1203,7 +1203,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[SCENE]: Restarting heartbeat thread because it hasn't reported in in region {0}", RegionInfo.RegionName);
|
m_log.ErrorFormat("[SCENE]: Restarting heartbeat thread because it hasn't reported in in region {0}", RegionInfo.RegionName);
|
||||||
HeartbeatThread.Abort();
|
HeartbeatThread.Abort();
|
||||||
Watchdog.RemoveThread(HeartbeatThread.ManagedThreadId);
|
Watchdog.AbortThread(HeartbeatThread.ManagedThreadId);
|
||||||
HeartbeatThread = null;
|
HeartbeatThread = null;
|
||||||
}
|
}
|
||||||
m_lastUpdate = Util.EnvironmentTickCount();
|
m_lastUpdate = Util.EnvironmentTickCount();
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1299,7 +1299,7 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
{
|
{
|
||||||
if (m_eventsubscription > 0)
|
if (m_eventsubscription > 0)
|
||||||
{
|
{
|
||||||
CollisionEventsThisFrame.addCollider(CollidedWith, contact);
|
CollisionEventsThisFrame.AddCollider(CollidedWith, contact);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2438,7 +2438,7 @@ Console.WriteLine("ODEPrim JointCreateFixed !!!");
|
||||||
{
|
{
|
||||||
if (CollisionEventsThisFrame == null)
|
if (CollisionEventsThisFrame == null)
|
||||||
CollisionEventsThisFrame = new CollisionEventUpdate();
|
CollisionEventsThisFrame = new CollisionEventUpdate();
|
||||||
CollisionEventsThisFrame.addCollider(CollidedWith, contact);
|
CollisionEventsThisFrame.AddCollider(CollidedWith, contact);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendCollisions()
|
public void SendCollisions()
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3648,12 +3648,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
public void llTargetOmega(LSL_Vector axis, double spinrate, double gain)
|
public void llTargetOmega(LSL_Vector axis, double spinrate, double gain)
|
||||||
{
|
{
|
||||||
m_host.AddScriptLPS(1);
|
m_host.AddScriptLPS(1);
|
||||||
m_host.AngularVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate));
|
TargetOmega(m_host, axis, spinrate, gain);
|
||||||
m_host.ScheduleTerseUpdate();
|
|
||||||
m_host.SendTerseUpdateToAllClients();
|
|
||||||
m_host.ParentGroup.HasGroupChanged = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void TargetOmega(SceneObjectPart part, LSL_Vector axis, double spinrate, double gain)
|
||||||
|
{
|
||||||
|
part.AngularVelocity = new Vector3((float)(axis.x * spinrate), (float)(axis.y * spinrate), (float)(axis.z * spinrate));
|
||||||
|
part.ScheduleTerseUpdate();
|
||||||
|
part.SendTerseUpdateToAllClients();
|
||||||
|
part.ParentGroup.HasGroupChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
public LSL_Integer llGetStartParameter()
|
public LSL_Integer llGetStartParameter()
|
||||||
{
|
{
|
||||||
m_host.AddScriptLPS(1);
|
m_host.AddScriptLPS(1);
|
||||||
|
@ -7936,6 +7941,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
LSL_Rotation lr = rules.GetQuaternionItem(idx++);
|
LSL_Rotation lr = rules.GetQuaternionItem(idx++);
|
||||||
SetRot(part, Rot2Quaternion(lr));
|
SetRot(part, Rot2Quaternion(lr));
|
||||||
break;
|
break;
|
||||||
|
case (int)ScriptBaseClass.PRIM_OMEGA:
|
||||||
|
if (remain < 3)
|
||||||
|
return;
|
||||||
|
LSL_Vector axis = rules.GetVector3Item(idx++);
|
||||||
|
LSL_Float spinrate = rules.GetLSLFloatItem(idx++);
|
||||||
|
LSL_Float gain = rules.GetLSLFloatItem(idx++);
|
||||||
|
TargetOmega(part, axis, (double)spinrate, (double)gain);
|
||||||
|
break;
|
||||||
|
case (int)ScriptBaseClass.PRIM_LINK_TARGET:
|
||||||
|
if (remain < 1)
|
||||||
|
return;
|
||||||
|
LSL_Integer new_linknumber = rules.GetLSLIntegerItem(idx++);
|
||||||
|
part = part.ParentGroup.GetLinkNumPart((int)new_linknumber);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -113,11 +113,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
{
|
{
|
||||||
public List<UUID> AllowedCreators;
|
public List<UUID> AllowedCreators;
|
||||||
public List<UUID> AllowedOwners;
|
public List<UUID> AllowedOwners;
|
||||||
|
public List<string> AllowedOwnerClasses;
|
||||||
|
|
||||||
public FunctionPerms()
|
public FunctionPerms()
|
||||||
{
|
{
|
||||||
AllowedCreators = new List<UUID>();
|
AllowedCreators = new List<UUID>();
|
||||||
AllowedOwners = new List<UUID>();
|
AllowedOwners = new List<UUID>();
|
||||||
|
AllowedOwnerClasses = new List<string>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -254,6 +256,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
// Default behavior
|
// Default behavior
|
||||||
perms.AllowedOwners = null;
|
perms.AllowedOwners = null;
|
||||||
perms.AllowedCreators = null;
|
perms.AllowedCreators = null;
|
||||||
|
perms.AllowedOwnerClasses = null;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -274,12 +277,20 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
foreach (string id in ids)
|
foreach (string id in ids)
|
||||||
{
|
{
|
||||||
string current = id.Trim();
|
string current = id.Trim();
|
||||||
UUID uuid;
|
if (current.ToUpper() == "PARCEL_GROUP_MEMBER" || current.ToUpper() == "PARCEL_OWNER" || current.ToUpper() == "ESTATE_MANAGER" || current.ToUpper() == "ESTATE_OWNER")
|
||||||
|
|
||||||
if (UUID.TryParse(current, out uuid))
|
|
||||||
{
|
{
|
||||||
if (uuid != UUID.Zero)
|
if (!perms.AllowedOwnerClasses.Contains(current))
|
||||||
perms.AllowedOwners.Add(uuid);
|
perms.AllowedOwnerClasses.Add(current.ToUpper());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UUID uuid;
|
||||||
|
|
||||||
|
if (UUID.TryParse(current, out uuid))
|
||||||
|
{
|
||||||
|
if (uuid != UUID.Zero)
|
||||||
|
perms.AllowedOwners.Add(uuid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,11 +346,55 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
String.Format("{0} permission error. Can't find script in prim inventory.",
|
String.Format("{0} permission error. Can't find script in prim inventory.",
|
||||||
function));
|
function));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UUID ownerID = ti.OwnerID;
|
||||||
|
|
||||||
|
//OSSL only may be used if objet is in the same group as the parcel
|
||||||
|
if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_GROUP_MEMBER"))
|
||||||
|
{
|
||||||
|
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
|
||||||
|
|
||||||
|
if (land.LandData.GroupID == ti.GroupID && land.LandData.GroupID != UUID.Zero)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Only Parcelowners may use the function
|
||||||
|
if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("PARCEL_OWNER"))
|
||||||
|
{
|
||||||
|
ILandObject land = World.LandChannel.GetLandObject(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
|
||||||
|
|
||||||
|
if (land.LandData.OwnerID == ownerID)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Only Estate Managers may use the function
|
||||||
|
if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("ESTATE_MANAGER"))
|
||||||
|
{
|
||||||
|
//Only Estate Managers may use the function
|
||||||
|
if (World.RegionInfo.EstateSettings.IsEstateManager(ownerID) && World.RegionInfo.EstateSettings.EstateOwner != ownerID)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Only regionowners may use the function
|
||||||
|
if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("ESTATE_OWNER"))
|
||||||
|
{
|
||||||
|
if (World.RegionInfo.EstateSettings.EstateOwner == ownerID)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_FunctionPerms[function].AllowedCreators.Contains(ti.CreatorID))
|
if (!m_FunctionPerms[function].AllowedCreators.Contains(ti.CreatorID))
|
||||||
OSSLError(
|
OSSLError(
|
||||||
String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function and prim owner also has no permission.",
|
String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function and prim owner also has no permission.",
|
||||||
function));
|
function));
|
||||||
if (ti.CreatorID != ti.OwnerID)
|
if (ti.CreatorID != ownerID)
|
||||||
{
|
{
|
||||||
if ((ti.CurrentPermissions & (uint)PermissionMask.Modify) != 0)
|
if ((ti.CurrentPermissions & (uint)PermissionMask.Modify) != 0)
|
||||||
OSSLError(
|
OSSLError(
|
||||||
|
|
|
@ -322,6 +322,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||||
public const int PRIM_NAME = 27;
|
public const int PRIM_NAME = 27;
|
||||||
public const int PRIM_DESC = 28;
|
public const int PRIM_DESC = 28;
|
||||||
public const int PRIM_ROT_LOCAL = 29;
|
public const int PRIM_ROT_LOCAL = 29;
|
||||||
|
public const int PRIM_OMEGA = 32;
|
||||||
|
public const int PRIM_LINK_TARGET = 34;
|
||||||
public const int PRIM_TEXGEN_DEFAULT = 0;
|
public const int PRIM_TEXGEN_DEFAULT = 0;
|
||||||
public const int PRIM_TEXGEN_PLANAR = 1;
|
public const int PRIM_TEXGEN_PLANAR = 1;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -617,6 +617,13 @@
|
||||||
|
|
||||||
; Comma separated list of UUIDS allows the function for that list of UUIDS
|
; Comma separated list of UUIDS allows the function for that list of UUIDS
|
||||||
; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb
|
; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb
|
||||||
|
|
||||||
|
; Comma separated list of owner classes that allow the function for a particular class of owners. Choices are
|
||||||
|
; - PARCEL_GROUP_MEMBER: allow if objectgroup is the same group as the parcel
|
||||||
|
; - PARCEL_OWNER: allow if the objectowner is parcelowner
|
||||||
|
; - ESTATE_MANAGER: allow if the object owner is a estate manager
|
||||||
|
; - ESTATE_OWNER: allow if objectowner is estateowner
|
||||||
|
; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb, PARCEL_OWNER, ESTATE_OWNER>, ...
|
||||||
|
|
||||||
; You can also use script creators as the uuid
|
; You can also use script creators as the uuid
|
||||||
; Creators_osSetRegionWaterHeight = <uuid>, ...
|
; Creators_osSetRegionWaterHeight = <uuid>, ...
|
||||||
|
|
|
@ -1196,6 +1196,13 @@
|
||||||
|
|
||||||
; Comma separated list of UUIDS allows the function for that list of UUIDS
|
; Comma separated list of UUIDS allows the function for that list of UUIDS
|
||||||
; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb
|
; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb
|
||||||
|
|
||||||
|
; Comma separated list of owner classes that allow the function for a particular class of owners. Choices are
|
||||||
|
; - PARCEL_GROUP_MEMBER: allow if objectgroup is the same group as the parcel
|
||||||
|
; - PARCEL_OWNER: allow if the objectowner is parcelowner
|
||||||
|
; - ESTATE_MANAGER: allow if the object owner is a estate manager
|
||||||
|
; - ESTATE_OWNER: allow if objectowner is estateowner
|
||||||
|
; Allow_osSetRegionWaterHeight = 888760cb-a3cf-43ac-8ea4-8732fd3ee2bb, PARCEL_OWNER, ESTATE_OWNER>, ...
|
||||||
|
|
||||||
; You can also use script creators as the uuid
|
; You can also use script creators as the uuid
|
||||||
; Creators_osSetRegionWaterHeight = <uuid>, ...
|
; Creators_osSetRegionWaterHeight = <uuid>, ...
|
||||||
|
|
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