aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorDiva Canto2011-06-03 11:33:44 -0700
committerDiva Canto2011-06-03 11:33:44 -0700
commit623706d988d47c3c0f3d46b68e77f9c54038d3f5 (patch)
tree7c87042736599f739756bf184404a1d2c3bcbb97 /OpenSim/Region
parentoops (diff)
downloadopensim-SC-623706d988d47c3c0f3d46b68e77f9c54038d3f5.zip
opensim-SC-623706d988d47c3c0f3d46b68e77f9c54038d3f5.tar.gz
opensim-SC-623706d988d47c3c0f3d46b68e77f9c54038d3f5.tar.bz2
opensim-SC-623706d988d47c3c0f3d46b68e77f9c54038d3f5.tar.xz
HG Landmarks bug fix: pull landmark asset data from user's asset server when user is traveling.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs28
1 files changed, 24 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 3a9e4b7..cefceb0 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -8308,10 +8308,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
8308 if (lma == null) 8308 if (lma == null)
8309 { 8309 {
8310 // Failed to find landmark 8310 // Failed to find landmark
8311 TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel); 8311
8312 tpCancel.Info.SessionID = tpReq.Info.SessionID; 8312 // Let's try to search in the user's home asset server
8313 tpCancel.Info.AgentID = tpReq.Info.AgentID; 8313 lma = FindAssetInUserAssetServer(lmid.ToString());
8314 OutPacket(tpCancel, ThrottleOutPacketType.Task); 8314
8315 if (lma == null)
8316 {
8317 // Really doesn't exist
8318 TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel);
8319 tpCancel.Info.SessionID = tpReq.Info.SessionID;
8320 tpCancel.Info.AgentID = tpReq.Info.AgentID;
8321 OutPacket(tpCancel, ThrottleOutPacketType.Task);
8322 }
8315 } 8323 }
8316 8324
8317 try 8325 try
@@ -8356,6 +8364,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
8356 return true; 8364 return true;
8357 } 8365 }
8358 8366
8367 private AssetBase FindAssetInUserAssetServer(string id)
8368 {
8369 AgentCircuitData aCircuit = ((Scene)Scene).AuthenticateHandler.GetAgentCircuitData(CircuitCode);
8370 if (aCircuit != null && aCircuit.ServiceURLs != null && aCircuit.ServiceURLs.ContainsKey("AssetServerURI"))
8371 {
8372 string assetServer = aCircuit.ServiceURLs["AssetServerURI"].ToString();
8373 return ((Scene)Scene).AssetService.Get(assetServer + "/" + id);
8374 }
8375
8376 return null;
8377 }
8378
8359 private bool HandleTeleportLocationRequest(IClientAPI sender, Packet Pack) 8379 private bool HandleTeleportLocationRequest(IClientAPI sender, Packet Pack)
8360 { 8380 {
8361 TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack; 8381 TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack;