diff options
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Services/LLLoginService/LLLoginResponse.cs')
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginResponse.cs | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/OpenSim/Services/LLLoginService/LLLoginResponse.cs b/OpenSim/Services/LLLoginService/LLLoginResponse.cs index e98cc22..011cad8 100644 --- a/OpenSim/Services/LLLoginService/LLLoginResponse.cs +++ b/OpenSim/Services/LLLoginService/LLLoginResponse.cs | |||
@@ -339,7 +339,34 @@ namespace OpenSim.Services.LLLoginService | |||
339 | 339 | ||
340 | private void FillOutSeedCap(AgentCircuitData aCircuit, GridRegion destination, IPEndPoint ipepClient) | 340 | private void FillOutSeedCap(AgentCircuitData aCircuit, GridRegion destination, IPEndPoint ipepClient) |
341 | { | 341 | { |
342 | SeedCapability = destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath); | 342 | string capsSeedPath = String.Empty; |
343 | |||
344 | // Don't use the following! It Fails for logging into any region not on the same port as the http server! | ||
345 | // Kept here so it doesn't happen again! | ||
346 | // response.SeedCapability = regionInfo.ServerURI + capsSeedPath; | ||
347 | |||
348 | #region IP Translation for NAT | ||
349 | if (ipepClient != null) | ||
350 | { | ||
351 | capsSeedPath | ||
352 | = "http://" | ||
353 | + NetworkUtil.GetHostFor(ipepClient.Address, destination.ExternalHostName) | ||
354 | + ":" | ||
355 | + destination.HttpPort | ||
356 | + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath); | ||
357 | } | ||
358 | else | ||
359 | { | ||
360 | capsSeedPath | ||
361 | = "http://" | ||
362 | + destination.ExternalHostName | ||
363 | + ":" | ||
364 | + destination.HttpPort | ||
365 | + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath); | ||
366 | } | ||
367 | #endregion | ||
368 | |||
369 | SeedCapability = capsSeedPath; | ||
343 | } | 370 | } |
344 | 371 | ||
345 | private void SetDefaultValues() | 372 | private void SetDefaultValues() |