diff options
Merge branch 'ubitwork' of ssh://3dhosting.de/var/git/careminster into ubitwork
Diffstat (limited to '')
4 files changed, 13 insertions, 23 deletions
diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs index 9b27a6e..f85509a 100644 --- a/OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs +++ b/OpenSim/Framework/Servers/HttpServer/PollServiceEventArgs.cs | |||
@@ -46,8 +46,14 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
46 | public RequestMethod Request; | 46 | public RequestMethod Request; |
47 | public UUID Id; | 47 | public UUID Id; |
48 | public int TimeOutms; | 48 | public int TimeOutms; |
49 | public EventType Type; | 49 | public EventType Type; |
50 | public bool GetEventsNeedsRequest = true; | 50 | // must be set true for cases where GetEvents needs to access the request body |
51 | // at each pool. http can start processing before having the full body | ||
52 | // but not sure if this is active for poll events | ||
53 | // if original coder thinked its needed i keep it | ||
54 | // if the Event has a Request method this seems to smoke for now | ||
55 | // seems for now nothing actually uses this so default to false | ||
56 | public bool GetEventsNeedsRequestBody = false; | ||
51 | 57 | ||
52 | public enum EventType : int | 58 | public enum EventType : int |
53 | { | 59 | { |
diff --git a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs index c234537..c379747 100644 --- a/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs +++ b/OpenSim/Framework/Servers/HttpServer/PollServiceRequestManager.cs | |||
@@ -278,15 +278,7 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
278 | Thread.Sleep(1000); // let the world move | 278 | Thread.Sleep(1000); // let the world move |
279 | 279 | ||
280 | foreach (Thread t in m_workerThreads) | 280 | foreach (Thread t in m_workerThreads) |
281 | { | 281 | Watchdog.AbortThread(t.ManagedThreadId); |
282 | try | ||
283 | { | ||
284 | t.Abort(); | ||
285 | } | ||
286 | catch | ||
287 | { | ||
288 | } | ||
289 | } | ||
290 | 282 | ||
291 | try | 283 | try |
292 | { | 284 | { |
@@ -345,10 +337,11 @@ namespace OpenSim.Framework.Servers.HttpServer | |||
345 | if (req.PollServiceArgs.HasEvents(req.RequestID, req.PollServiceArgs.Id)) | 337 | if (req.PollServiceArgs.HasEvents(req.RequestID, req.PollServiceArgs.Id)) |
346 | { | 338 | { |
347 | string strreq = ""; | 339 | string strreq = ""; |
348 | if (req.PollServiceArgs.GetEventsNeedsRequest) | 340 | if (req.PollServiceArgs.GetEventsNeedsRequestBody) |
349 | { | 341 | { |
350 | try | 342 | try |
351 | { | 343 | { |
344 | // should we try to seek back? fear we can't | ||
352 | str = new StreamReader(req.Request.Body); | 345 | str = new StreamReader(req.Request.Body); |
353 | strreq = str.ReadToEnd(); | 346 | strreq = str.ReadToEnd(); |
354 | str.Close(); | 347 | str.Close(); |
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs index 8a607fb..5169f65 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs | |||
@@ -151,12 +151,7 @@ namespace OpenSim.Region.ClientStack.Linden | |||
151 | private Scene m_scene; | 151 | private Scene m_scene; |
152 | 152 | ||
153 | public PollServiceTextureEventArgs(UUID pId, Scene scene) : | 153 | public PollServiceTextureEventArgs(UUID pId, Scene scene) : |
154 | base(null, null, null, null, pId, int.MaxValue) | 154 | base(null, null, null, null, pId, int.MaxValue) |
155 | // this should never timeout | ||
156 | // each request must be processed and return a response | ||
157 | // noevents can possible be use for nice shutdown, but not sure now | ||
158 | // the execution will provide a proper response even if it fails | ||
159 | |||
160 | { | 155 | { |
161 | m_scene = scene; | 156 | m_scene = scene; |
162 | 157 | ||
@@ -219,7 +214,6 @@ namespace OpenSim.Region.ClientStack.Linden | |||
219 | UUID requestID = requestinfo.reqID; | 214 | UUID requestID = requestinfo.reqID; |
220 | 215 | ||
221 | // If the avatar is gone, don't bother to get the texture | 216 | // If the avatar is gone, don't bother to get the texture |
222 | |||
223 | if (m_scene.GetScenePresence(Id) == null) | 217 | if (m_scene.GetScenePresence(Id) == null) |
224 | { | 218 | { |
225 | response = new Hashtable(); | 219 | response = new Hashtable(); |
@@ -246,12 +240,10 @@ namespace OpenSim.Region.ClientStack.Linden | |||
246 | { | 240 | { |
247 | string capUrl = "/CAPS/" + UUID.Random() + "/"; | 241 | string capUrl = "/CAPS/" + UUID.Random() + "/"; |
248 | 242 | ||
249 | // Register this as a poll service | 243 | // Register this as a poll service |
250 | // absurd large timeout to tune later to make a bit less than viewer | ||
251 | PollServiceTextureEventArgs args = new PollServiceTextureEventArgs(agentID, m_scene); | 244 | PollServiceTextureEventArgs args = new PollServiceTextureEventArgs(agentID, m_scene); |
252 | 245 | ||
253 | args.Type = PollServiceEventArgs.EventType.Texture; | 246 | args.Type = PollServiceEventArgs.EventType.Texture; |
254 | args.GetEventsNeedsRequest = false; | ||
255 | MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args); | 247 | MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args); |
256 | 248 | ||
257 | string hostName = m_scene.RegionInfo.ExternalHostName; | 249 | string hostName = m_scene.RegionInfo.ExternalHostName; |
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs index 56070c6..0f305b1 100644 --- a/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs +++ b/OpenSim/Region/ClientStack/Linden/Caps/WebFetchInvDescModule.cs | |||
@@ -223,7 +223,6 @@ namespace OpenSim.Region.ClientStack.Linden | |||
223 | PollServiceInventoryEventArgs args = new PollServiceInventoryEventArgs(agentID); | 223 | PollServiceInventoryEventArgs args = new PollServiceInventoryEventArgs(agentID); |
224 | 224 | ||
225 | args.Type = PollServiceEventArgs.EventType.Inventory; | 225 | args.Type = PollServiceEventArgs.EventType.Inventory; |
226 | args.GetEventsNeedsRequest = false; | ||
227 | MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args); | 226 | MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args); |
228 | 227 | ||
229 | string hostName = m_scene.RegionInfo.ExternalHostName; | 228 | string hostName = m_scene.RegionInfo.ExternalHostName; |