diff options
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs index 54cc80f..3791e1d 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs | |||
@@ -327,21 +327,34 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
327 | 327 | ||
328 | // OK, it got this agent. Let's close some child agents | 328 | // OK, it got this agent. Let's close some child agents |
329 | sp.CloseChildAgents(newRegionX, newRegionY); | 329 | sp.CloseChildAgents(newRegionX, newRegionY); |
330 | IClientIPEndpoint ipepClient; | 330 | |
331 | if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY)) | 331 | if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY)) |
332 | { | 332 | { |
333 | //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent..."); | 333 | //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent..."); |
334 | |||
334 | #region IP Translation for NAT | 335 | #region IP Translation for NAT |
335 | // Uses ipepClient above | 336 | IClientIPEndpoint ipepClient; |
336 | if (sp.ClientView.TryGet(out ipepClient)) | 337 | if (sp.ClientView.TryGet(out ipepClient)) |
337 | { | 338 | { |
338 | endPoint.Address = NetworkUtil.GetIPFor(ipepClient.EndPoint, endPoint.Address); | 339 | capsPath |
340 | = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath); | ||
341 | } | ||
342 | else | ||
343 | { | ||
344 | capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath); | ||
339 | } | 345 | } |
340 | #endregion | 346 | #endregion |
341 | capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath); | ||
342 | 347 | ||
343 | if (eq != null) | 348 | if (eq != null) |
344 | { | 349 | { |
350 | #region IP Translation for NAT | ||
351 | // Uses ipepClient above | ||
352 | if (sp.ClientView.TryGet(out ipepClient)) | ||
353 | { | ||
354 | endPoint.Address = NetworkUtil.GetIPFor(ipepClient.EndPoint, endPoint.Address); | ||
355 | } | ||
356 | #endregion | ||
357 | |||
345 | eq.EnableSimulator(destinationHandle, endPoint, sp.UUID); | 358 | eq.EnableSimulator(destinationHandle, endPoint, sp.UUID); |
346 | 359 | ||
347 | // ES makes the client send a UseCircuitCode message to the destination, | 360 | // ES makes the client send a UseCircuitCode message to the destination, |
@@ -360,7 +373,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
360 | else | 373 | else |
361 | { | 374 | { |
362 | agentCircuit.CapsPath = sp.Scene.CapsModule.GetChildSeed(sp.UUID, reg.RegionHandle); | 375 | agentCircuit.CapsPath = sp.Scene.CapsModule.GetChildSeed(sp.UUID, reg.RegionHandle); |
363 | capsPath = finalDestination.ServerURI + CapsUtil.GetCapsSeedPath(agentCircuit.CapsPath); | 376 | capsPath = finalDestination.ServerURI + "/CAPS/" + agentCircuit.CapsPath + "0000/"; |
364 | } | 377 | } |
365 | 378 | ||
366 | // Expect avatar crossing is a heavy-duty function at the destination. | 379 | // Expect avatar crossing is a heavy-duty function at the destination. |
@@ -493,8 +506,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
493 | 506 | ||
494 | protected virtual void SetCallbackURL(AgentData agent, RegionInfo region) | 507 | protected virtual void SetCallbackURL(AgentData agent, RegionInfo region) |
495 | { | 508 | { |
496 | agent.CallbackURI = region.ServerURI + "agent/" + agent.AgentID.ToString() + "/" + region.RegionID.ToString() + "/release/"; | 509 | agent.CallbackURI = region.ServerURI + "/agent/" + agent.AgentID.ToString() + "/" + region.RegionID.ToString() + "/release/"; |
497 | m_log.Debug("Set callback URL to " + agent.CallbackURI); | ||
498 | 510 | ||
499 | } | 511 | } |
500 | 512 | ||
@@ -820,7 +832,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
820 | if (isFlying) | 832 | if (isFlying) |
821 | cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; | 833 | cAgent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; |
822 | cAgent.CallbackURI = m_scene.RegionInfo.ServerURI + | 834 | cAgent.CallbackURI = m_scene.RegionInfo.ServerURI + |
823 | "agent/" + agent.UUID.ToString() + "/" + m_scene.RegionInfo.RegionID.ToString() + "/release/"; | 835 | "/agent/" + agent.UUID.ToString() + "/" + m_scene.RegionInfo.RegionID.ToString() + "/release/"; |
824 | 836 | ||
825 | if (!m_scene.SimulationService.UpdateAgent(neighbourRegion, cAgent)) | 837 | if (!m_scene.SimulationService.UpdateAgent(neighbourRegion, cAgent)) |
826 | { | 838 | { |
@@ -845,7 +857,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
845 | neighbourRegion.RegionHandle); | 857 | neighbourRegion.RegionHandle); |
846 | return agent; | 858 | return agent; |
847 | } | 859 | } |
848 | string capsPath = neighbourRegion.ServerURI + CapsUtil.GetCapsSeedPath(agentcaps); | 860 | // TODO Should construct this behind a method |
861 | string capsPath = | ||
862 | neighbourRegion.ServerURI + "/CAPS/" + agentcaps /*circuitdata.CapsPath*/ + "0000/"; | ||
849 | 863 | ||
850 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Sending new CAPS seed url {0} to client {1}", capsPath, agent.UUID); | 864 | m_log.DebugFormat("[ENTITY TRANSFER MODULE]: Sending new CAPS seed url {0} to client {1}", capsPath, agent.UUID); |
851 | 865 | ||
@@ -1164,7 +1178,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
1164 | y = y / Constants.RegionSize; | 1178 | y = y / Constants.RegionSize; |
1165 | m_log.Info("[ENTITY TRANSFER MODULE]: Starting to inform client about neighbour " + x + ", " + y + "(" + endPoint.ToString() + ")"); | 1179 | m_log.Info("[ENTITY TRANSFER MODULE]: Starting to inform client about neighbour " + x + ", " + y + "(" + endPoint.ToString() + ")"); |
1166 | 1180 | ||
1167 | string capsPath = reg.ServerURI + CapsUtil.GetCapsSeedPath(a.CapsPath); | 1181 | string capsPath = reg.ServerURI + "/CAPS/" + a.CapsPath + "0000/"; |
1168 | 1182 | ||
1169 | string reason = String.Empty; | 1183 | string reason = String.Empty; |
1170 | 1184 | ||