Merge branch 'ubitwork' of ssh://3dhosting.de/var/git/careminster into ubitwork

avinationmerge
ubit 2012-09-26 16:44:34 +02:00
commit 24539a074e
4 changed files with 13 additions and 23 deletions

View File

@ -46,8 +46,14 @@ namespace OpenSim.Framework.Servers.HttpServer
public RequestMethod Request;
public UUID Id;
public int TimeOutms;
public EventType Type;
public bool GetEventsNeedsRequest = true;
public EventType Type;
// must be set true for cases where GetEvents needs to access the request body
// at each pool. http can start processing before having the full body
// but not sure if this is active for poll events
// if original coder thinked its needed i keep it
// if the Event has a Request method this seems to smoke for now
// seems for now nothing actually uses this so default to false
public bool GetEventsNeedsRequestBody = false;
public enum EventType : int
{

View File

@ -278,15 +278,7 @@ namespace OpenSim.Framework.Servers.HttpServer
Thread.Sleep(1000); // let the world move
foreach (Thread t in m_workerThreads)
{
try
{
t.Abort();
}
catch
{
}
}
Watchdog.AbortThread(t.ManagedThreadId);
try
{
@ -345,10 +337,11 @@ namespace OpenSim.Framework.Servers.HttpServer
if (req.PollServiceArgs.HasEvents(req.RequestID, req.PollServiceArgs.Id))
{
string strreq = "";
if (req.PollServiceArgs.GetEventsNeedsRequest)
if (req.PollServiceArgs.GetEventsNeedsRequestBody)
{
try
{
// should we try to seek back? fear we can't
str = new StreamReader(req.Request.Body);
strreq = str.ReadToEnd();
str.Close();

View File

@ -151,12 +151,7 @@ namespace OpenSim.Region.ClientStack.Linden
private Scene m_scene;
public PollServiceTextureEventArgs(UUID pId, Scene scene) :
base(null, null, null, null, pId, int.MaxValue)
// this should never timeout
// each request must be processed and return a response
// noevents can possible be use for nice shutdown, but not sure now
// the execution will provide a proper response even if it fails
base(null, null, null, null, pId, int.MaxValue)
{
m_scene = scene;
@ -219,7 +214,6 @@ namespace OpenSim.Region.ClientStack.Linden
UUID requestID = requestinfo.reqID;
// If the avatar is gone, don't bother to get the texture
if (m_scene.GetScenePresence(Id) == null)
{
response = new Hashtable();
@ -246,12 +240,10 @@ namespace OpenSim.Region.ClientStack.Linden
{
string capUrl = "/CAPS/" + UUID.Random() + "/";
// Register this as a poll service
// absurd large timeout to tune later to make a bit less than viewer
// Register this as a poll service
PollServiceTextureEventArgs args = new PollServiceTextureEventArgs(agentID, m_scene);
args.Type = PollServiceEventArgs.EventType.Texture;
args.GetEventsNeedsRequest = false;
MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args);
string hostName = m_scene.RegionInfo.ExternalHostName;

View File

@ -223,7 +223,6 @@ namespace OpenSim.Region.ClientStack.Linden
PollServiceInventoryEventArgs args = new PollServiceInventoryEventArgs(agentID);
args.Type = PollServiceEventArgs.EventType.Inventory;
args.GetEventsNeedsRequest = false;
MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args);
string hostName = m_scene.RegionInfo.ExternalHostName;