aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorMelanie2013-09-16 22:32:53 +0100
committerMelanie2013-09-16 22:32:53 +0100
commit72206a0e294865bf0c93ea16910276a188d51ce6 (patch)
treef7769826d78863b2e0e416fe529f0c55065e0acd /OpenSim/Region/ClientStack
parentMerge branch 'master' into careminster (diff)
parentMono 2.0 fix - call ToArray() explicitly (diff)
downloadopensim-SC-72206a0e294865bf0c93ea16910276a188d51ce6.zip
opensim-SC-72206a0e294865bf0c93ea16910276a188d51ce6.tar.gz
opensim-SC-72206a0e294865bf0c93ea16910276a188d51ce6.tar.bz2
opensim-SC-72206a0e294865bf0c93ea16910276a188d51ce6.tar.xz
Merge branch 'avination-current' into careminster
Conflicts: OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs OpenSim/Region/Framework/Scenes/Tests/SceneObjectDeRezTests.cs
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs57
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs12
2 files changed, 46 insertions, 23 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
index c8e1e83..e053054 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
@@ -77,6 +77,8 @@ namespace OpenSim.Region.ClientStack.Linden
77 private Dictionary<UUID, string> m_capsDict = new Dictionary<UUID, string>(); 77 private Dictionary<UUID, string> m_capsDict = new Dictionary<UUID, string>();
78 private static Thread[] m_workerThreads = null; 78 private static Thread[] m_workerThreads = null;
79 79
80 private string m_Url = "localhost";
81
80 private static OpenMetaverse.BlockingQueue<aPollRequest> m_queue = 82 private static OpenMetaverse.BlockingQueue<aPollRequest> m_queue =
81 new OpenMetaverse.BlockingQueue<aPollRequest>(); 83 new OpenMetaverse.BlockingQueue<aPollRequest>();
82 84
@@ -88,6 +90,9 @@ namespace OpenSim.Region.ClientStack.Linden
88 90
89 public void Initialise(IConfigSource source) 91 public void Initialise(IConfigSource source)
90 { 92 {
93 IConfig config = source.Configs["ClientStack.LindenCaps"];
94 if (config != null)
95 m_Url = config.GetString("Cap_GetTexture", "localhost");
91 } 96 }
92 97
93 public void AddRegion(Scene s) 98 public void AddRegion(Scene s)
@@ -345,32 +350,38 @@ namespace OpenSim.Region.ClientStack.Linden
345 350
346 private void RegisterCaps(UUID agentID, Caps caps) 351 private void RegisterCaps(UUID agentID, Caps caps)
347 { 352 {
348 m_URL = "/CAPS/" + UUID.Random() + "/"; 353 if (m_Url == "localhost")
349
350 // Register this as a poll service
351 PollServiceTextureEventArgs args = new PollServiceTextureEventArgs(agentID, m_scene);
352
353 args.Type = PollServiceEventArgs.EventType.Texture;
354 MainServer.Instance.AddPollServiceHTTPHandler(m_URL, args);
355
356 string hostName = m_scene.RegionInfo.ExternalHostName;
357 uint port = (MainServer.Instance == null) ? 0 : MainServer.Instance.Port;
358 string protocol = "http";
359
360 if (MainServer.Instance.UseSSL)
361 { 354 {
362 hostName = MainServer.Instance.SSLCommonName; 355 string capUrl = "/CAPS/" + UUID.Random() + "/";
363 port = MainServer.Instance.SSLPort;
364 protocol = "https";
365 }
366 356
367 IExternalCapsModule handler = m_scene.RequestModuleInterface<IExternalCapsModule>(); 357 // Register this as a poll service
368 if (handler != null) 358 PollServiceTextureEventArgs args = new PollServiceTextureEventArgs(agentID, m_scene);
369 handler.RegisterExternalUserCapsHandler(agentID, caps, "GetTexture", m_URL); 359
360 args.Type = PollServiceEventArgs.EventType.Texture;
361 MainServer.Instance.AddPollServiceHTTPHandler(capUrl, args);
362
363 string hostName = m_scene.RegionInfo.ExternalHostName;
364 uint port = (MainServer.Instance == null) ? 0 : MainServer.Instance.Port;
365 string protocol = "http";
366
367 if (MainServer.Instance.UseSSL)
368 {
369 hostName = MainServer.Instance.SSLCommonName;
370 port = MainServer.Instance.SSLPort;
371 protocol = "https";
372 }
373 IExternalCapsModule handler = m_scene.RequestModuleInterface<IExternalCapsModule>();
374 if (handler != null)
375 handler.RegisterExternalUserCapsHandler(agentID, caps, "GetTexture", capUrl);
376 else
377 caps.RegisterHandler("GetTexture", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl));
378 m_pollservices[agentID] = args;
379 m_capsDict[agentID] = capUrl;
380 }
370 else 381 else
371 caps.RegisterHandler("GetTexture", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, m_URL)); 382 {
372 m_pollservices[agentID] = args; 383 caps.RegisterHandler("GetTexture", m_Url);
373 m_capsDict[agentID] = m_URL; 384 }
374 } 385 }
375 386
376 private void DeregisterCaps(UUID agentID, Caps caps) 387 private void DeregisterCaps(UUID agentID, Caps caps)
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index dc28be8..36edd0b 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -4004,6 +4004,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4004 part.Shape.ProfileHollow = 27500; 4004 part.Shape.ProfileHollow = 27500;
4005 } 4005 }
4006 } 4006 }
4007 else if (update.Entity is ScenePresence)
4008 {
4009 ScenePresence presence = (ScenePresence)update.Entity;
4010
4011 // If ParentUUID is not UUID.Zero and ParentID is 0, this
4012 // avatar is in the process of crossing regions while
4013 // sat on an object. In this state, we don't want any
4014 // updates because they will visually orbit the avatar.
4015 // Update will be forced once crossing is completed anyway.
4016 if (presence.ParentUUID != UUID.Zero && presence.ParentID == 0)
4017 continue;
4018 }
4007 4019
4008 ++updatesThisCall; 4020 ++updatesThisCall;
4009 4021