diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Services/LLLoginService/LLLoginService.cs | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/OpenSim/Services/LLLoginService/LLLoginService.cs b/OpenSim/Services/LLLoginService/LLLoginService.cs index 1eaf4d4..7b25274 100644 --- a/OpenSim/Services/LLLoginService/LLLoginService.cs +++ b/OpenSim/Services/LLLoginService/LLLoginService.cs | |||
@@ -339,9 +339,16 @@ namespace OpenSim.Services.LLLoginService | |||
339 | where = "safe"; | 339 | where = "safe"; |
340 | } | 340 | } |
341 | else | 341 | else |
342 | m_log.WarnFormat( | 342 | { |
343 | "[LLOGIN SERVICE]: User {0} {1} does not have a valid home and this grid does not have default locations.", | 343 | m_log.WarnFormat("[LLOGIN SERVICE]: User {0} {1} does not have a valid home and this grid does not have default locations. Attempting to find random region", |
344 | account.FirstName, account.LastName); | 344 | account.FirstName, account.LastName); |
345 | defaults = m_GridService.GetRegionsByName(account.ScopeID, "", 1); | ||
346 | if (defaults != null && defaults.Count > 0) | ||
347 | { | ||
348 | region = defaults[0]; | ||
349 | where = "safe"; | ||
350 | } | ||
351 | } | ||
345 | } | 352 | } |
346 | 353 | ||
347 | return region; | 354 | return region; |
@@ -364,6 +371,17 @@ namespace OpenSim.Services.LLLoginService | |||
364 | region = defaults[0]; | 371 | region = defaults[0]; |
365 | where = "safe"; | 372 | where = "safe"; |
366 | } | 373 | } |
374 | else | ||
375 | { | ||
376 | m_log.Info("[LLOGIN SERVICE]: Last Region Not Found Attempting to find random region"); | ||
377 | defaults = m_GridService.GetRegionsByName(account.ScopeID, "", 1); | ||
378 | if (defaults != null && defaults.Count > 0) | ||
379 | { | ||
380 | region = defaults[0]; | ||
381 | where = "safe"; | ||
382 | } | ||
383 | } | ||
384 | |||
367 | } | 385 | } |
368 | else | 386 | else |
369 | { | 387 | { |
@@ -396,7 +414,6 @@ namespace OpenSim.Services.LLLoginService | |||
396 | { | 414 | { |
397 | if (!regionName.Contains("@")) | 415 | if (!regionName.Contains("@")) |
398 | { | 416 | { |
399 | |||
400 | List<GridRegion> regions = m_GridService.GetRegionsByName(account.ScopeID, regionName, 1); | 417 | List<GridRegion> regions = m_GridService.GetRegionsByName(account.ScopeID, regionName, 1); |
401 | if ((regions == null) || (regions != null && regions.Count == 0)) | 418 | if ((regions == null) || (regions != null && regions.Count == 0)) |
402 | { | 419 | { |
@@ -429,6 +446,7 @@ namespace OpenSim.Services.LLLoginService | |||
429 | return null; | 446 | return null; |
430 | } | 447 | } |
431 | // Valid specification of a remote grid | 448 | // Valid specification of a remote grid |
449 | |||
432 | regionName = parts[0]; | 450 | regionName = parts[0]; |
433 | string domainLocator = parts[1]; | 451 | string domainLocator = parts[1]; |
434 | parts = domainLocator.Split(new char[] {':'}); | 452 | parts = domainLocator.Split(new char[] {':'}); |
@@ -436,6 +454,7 @@ namespace OpenSim.Services.LLLoginService | |||
436 | uint port = 0; | 454 | uint port = 0; |
437 | if (parts.Length > 1) | 455 | if (parts.Length > 1) |
438 | UInt32.TryParse(parts[1], out port); | 456 | UInt32.TryParse(parts[1], out port); |
457 | |||
439 | GridRegion region = FindForeignRegion(domainName, port, regionName, out gatekeeper); | 458 | GridRegion region = FindForeignRegion(domainName, port, regionName, out gatekeeper); |
440 | return region; | 459 | return region; |
441 | } | 460 | } |