diff options
Diffstat (limited to 'OpenSim/Services/LLLoginService')
-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 f985ab2..0da1715 100644 --- a/OpenSim/Services/LLLoginService/LLLoginResponse.cs +++ b/OpenSim/Services/LLLoginService/LLLoginResponse.cs | |||
@@ -333,7 +333,34 @@ namespace OpenSim.Services.LLLoginService | |||
333 | 333 | ||
334 | private void FillOutSeedCap(AgentCircuitData aCircuit, GridRegion destination, IPEndPoint ipepClient) | 334 | private void FillOutSeedCap(AgentCircuitData aCircuit, GridRegion destination, IPEndPoint ipepClient) |
335 | { | 335 | { |
336 | SeedCapability = destination.ServerURI + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath); | 336 | string capsSeedPath = String.Empty; |
337 | |||
338 | // Don't use the following! It Fails for logging into any region not on the same port as the http server! | ||
339 | // Kept here so it doesn't happen again! | ||
340 | // response.SeedCapability = regionInfo.ServerURI + capsSeedPath; | ||
341 | |||
342 | #region IP Translation for NAT | ||
343 | if (ipepClient != null) | ||
344 | { | ||
345 | capsSeedPath | ||
346 | = "http://" | ||
347 | + NetworkUtil.GetHostFor(ipepClient.Address, destination.ExternalHostName) | ||
348 | + ":" | ||
349 | + destination.HttpPort | ||
350 | + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath); | ||
351 | } | ||
352 | else | ||
353 | { | ||
354 | capsSeedPath | ||
355 | = "http://" | ||
356 | + destination.ExternalHostName | ||
357 | + ":" | ||
358 | + destination.HttpPort | ||
359 | + CapsUtil.GetCapsSeedPath(aCircuit.CapsPath); | ||
360 | } | ||
361 | #endregion | ||
362 | |||
363 | SeedCapability = capsSeedPath; | ||
337 | } | 364 | } |
338 | 365 | ||
339 | private void SetDefaultValues() | 366 | private void SetDefaultValues() |