Merge branch 'ubitwork' of ssh://3dhosting.de/var/git/careminster into ubitwork
commit
a2c0de4c10
|
@ -226,7 +226,9 @@ namespace OpenSim.Capabilities.Handlers
|
||||||
// sending back the last byte instead of an error status
|
// sending back the last byte instead of an error status
|
||||||
if (start >= texture.Data.Length)
|
if (start >= texture.Data.Length)
|
||||||
{
|
{
|
||||||
response.StatusCode = (int)System.Net.HttpStatusCode.RequestedRangeNotSatisfiable;
|
// response.StatusCode = (int)System.Net.HttpStatusCode.RequestedRangeNotSatisfiable;
|
||||||
|
// viewers don't seem to handle RequestedRangeNotSatisfiable and keep retrying with same parameters
|
||||||
|
response.StatusCode = (int)System.Net.HttpStatusCode.NotFound;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,6 +45,13 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
public RequestMethod Request;
|
public RequestMethod Request;
|
||||||
public UUID Id;
|
public UUID Id;
|
||||||
public int TimeOutms;
|
public int TimeOutms;
|
||||||
|
public EventType Type;
|
||||||
|
|
||||||
|
public enum EventType : int
|
||||||
|
{
|
||||||
|
Normal = 0,
|
||||||
|
LslHttp = 1
|
||||||
|
}
|
||||||
|
|
||||||
public PollServiceEventArgs(RequestMethod pRequest, HasEventsMethod pHasEvents, GetEventsMethod pGetEvents, NoEventsMethod pNoEvents, UUID pId, int pTimeOutms)
|
public PollServiceEventArgs(RequestMethod pRequest, HasEventsMethod pHasEvents, GetEventsMethod pGetEvents, NoEventsMethod pNoEvents, UUID pId, int pTimeOutms)
|
||||||
{
|
{
|
||||||
|
@ -54,6 +61,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
NoEvents = pNoEvents;
|
NoEvents = pNoEvents;
|
||||||
Id = pId;
|
Id = pId;
|
||||||
TimeOutms = pTimeOutms;
|
TimeOutms = pTimeOutms;
|
||||||
|
Type = EventType.Normal;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -174,13 +174,15 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
private readonly BaseHttpServer m_server;
|
private readonly BaseHttpServer m_server;
|
||||||
|
|
||||||
private BlockingQueue<PollServiceHttpRequest> m_requests = new BlockingQueue<PollServiceHttpRequest>();
|
private BlockingQueue<PollServiceHttpRequest> m_requests = new BlockingQueue<PollServiceHttpRequest>();
|
||||||
private static Queue<PollServiceHttpRequest> m_retry_requests = new Queue<PollServiceHttpRequest>();
|
private static Queue<PollServiceHttpRequest> m_slowRequests = new Queue<PollServiceHttpRequest>();
|
||||||
|
private static Queue<PollServiceHttpRequest> m_retryRequests = new Queue<PollServiceHttpRequest>();
|
||||||
|
|
||||||
private uint m_WorkerThreadCount = 0;
|
private uint m_WorkerThreadCount = 0;
|
||||||
private Thread[] m_workerThreads;
|
private Thread[] m_workerThreads;
|
||||||
private Thread m_retrysThread;
|
private Thread m_retrysThread;
|
||||||
|
|
||||||
private bool m_running = true;
|
private bool m_running = true;
|
||||||
|
private int slowCount = 0;
|
||||||
|
|
||||||
// private int m_timeout = 1000; // increase timeout 250; now use the event one
|
// private int m_timeout = 1000; // increase timeout 250; now use the event one
|
||||||
|
|
||||||
|
@ -195,7 +197,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
{
|
{
|
||||||
m_workerThreads[i]
|
m_workerThreads[i]
|
||||||
= Watchdog.StartThread(
|
= Watchdog.StartThread(
|
||||||
poolWorkerJob,
|
PoolWorkerJob,
|
||||||
String.Format("PollServiceWorkerThread{0}", i),
|
String.Format("PollServiceWorkerThread{0}", i),
|
||||||
ThreadPriority.Normal,
|
ThreadPriority.Normal,
|
||||||
false,
|
false,
|
||||||
|
@ -217,16 +219,26 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
{
|
{
|
||||||
if (m_running)
|
if (m_running)
|
||||||
{
|
{
|
||||||
lock (m_retry_requests)
|
lock (m_retryRequests)
|
||||||
m_retry_requests.Enqueue(req);
|
m_retryRequests.Enqueue(req);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Enqueue(PollServiceHttpRequest req)
|
public void Enqueue(PollServiceHttpRequest req)
|
||||||
{
|
{
|
||||||
if (m_running)
|
if (m_running)
|
||||||
|
{
|
||||||
|
if (req.PollServiceArgs.Type == PollServiceEventArgs.EventType.LslHttp)
|
||||||
|
{
|
||||||
m_requests.Enqueue(req);
|
m_requests.Enqueue(req);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
lock (m_slowRequests)
|
||||||
|
m_slowRequests.Enqueue(req);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void CheckRetries()
|
private void CheckRetries()
|
||||||
{
|
{
|
||||||
|
@ -234,10 +246,21 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
{
|
{
|
||||||
Thread.Sleep(100); // let the world move .. back to faster rate
|
Thread.Sleep(100); // let the world move .. back to faster rate
|
||||||
Watchdog.UpdateThread();
|
Watchdog.UpdateThread();
|
||||||
lock (m_retry_requests)
|
lock (m_retryRequests)
|
||||||
{
|
{
|
||||||
while (m_retry_requests.Count > 0 && m_running)
|
while (m_retryRequests.Count > 0 && m_running)
|
||||||
Enqueue(m_retry_requests.Dequeue());
|
m_requests.Enqueue(m_retryRequests.Dequeue());
|
||||||
|
}
|
||||||
|
slowCount++;
|
||||||
|
if (slowCount >= 10)
|
||||||
|
{
|
||||||
|
slowCount = 0;
|
||||||
|
|
||||||
|
lock (m_slowRequests)
|
||||||
|
{
|
||||||
|
while (m_slowRequests.Count > 0 && m_running)
|
||||||
|
m_requests.Enqueue(m_slowRequests.Dequeue());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -261,7 +284,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
foreach (PollServiceHttpRequest req in m_retry_requests)
|
foreach (PollServiceHttpRequest req in m_retryRequests)
|
||||||
{
|
{
|
||||||
m_server.DoHTTPGruntWork(
|
m_server.DoHTTPGruntWork(
|
||||||
req.PollServiceArgs.NoEvents(req.RequestID, req.PollServiceArgs.Id),
|
req.PollServiceArgs.NoEvents(req.RequestID, req.PollServiceArgs.Id),
|
||||||
|
@ -273,7 +296,13 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
}
|
}
|
||||||
|
|
||||||
PollServiceHttpRequest wreq;
|
PollServiceHttpRequest wreq;
|
||||||
m_retry_requests.Clear();
|
m_retryRequests.Clear();
|
||||||
|
|
||||||
|
lock (m_slowRequests)
|
||||||
|
{
|
||||||
|
while (m_slowRequests.Count > 0 && m_running)
|
||||||
|
m_requests.Enqueue(m_slowRequests.Dequeue());
|
||||||
|
}
|
||||||
|
|
||||||
while (m_requests.Count() > 0)
|
while (m_requests.Count() > 0)
|
||||||
{
|
{
|
||||||
|
@ -294,7 +323,7 @@ namespace OpenSim.Framework.Servers.HttpServer
|
||||||
|
|
||||||
// work threads
|
// work threads
|
||||||
|
|
||||||
private void poolWorkerJob()
|
private void PoolWorkerJob()
|
||||||
{
|
{
|
||||||
PollServiceHttpRequest req;
|
PollServiceHttpRequest req;
|
||||||
StreamReader str;
|
StreamReader str;
|
||||||
|
|
|
@ -172,9 +172,9 @@ namespace OpenSim.Region.CoreModules.Scripting.LSLHttp
|
||||||
|
|
||||||
string uri = "/lslhttp/" + urlcode.ToString();
|
string uri = "/lslhttp/" + urlcode.ToString();
|
||||||
|
|
||||||
m_HttpServer.AddPollServiceHTTPHandler(
|
PollServiceEventArgs args = new PollServiceEventArgs(HttpRequestHandler, HasEvents, GetEvents, NoEvents, urlcode, 25000);
|
||||||
uri,
|
args.Type = PollServiceEventArgs.EventType.LslHttp;
|
||||||
new PollServiceEventArgs(HttpRequestHandler, HasEvents, GetEvents, NoEvents, urlcode,25000));
|
m_HttpServer.AddPollServiceHTTPHandler(uri, args);
|
||||||
|
|
||||||
engine.PostScriptEvent(itemID, "http_request", new Object[] { urlcode.ToString(), "URL_REQUEST_GRANTED", url });
|
engine.PostScriptEvent(itemID, "http_request", new Object[] { urlcode.ToString(), "URL_REQUEST_GRANTED", url });
|
||||||
}
|
}
|
||||||
|
|
|
@ -7479,7 +7479,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||||
public LSL_String llSHA1String(string src)
|
public LSL_String llSHA1String(string src)
|
||||||
{
|
{
|
||||||
m_host.AddScriptLPS(1);
|
m_host.AddScriptLPS(1);
|
||||||
return Util.SHA1Hash(src, Encoding.UTF8).ToUpper();
|
return Util.SHA1Hash(src, Encoding.UTF8).ToLower();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, byte profileshape, byte pathcurve)
|
protected ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, byte profileshape, byte pathcurve)
|
||||||
|
|
Loading…
Reference in New Issue