aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Services')
-rw-r--r--OpenSim/Services/HypergridService/GatekeeperService.cs44
1 files changed, 5 insertions, 39 deletions
diff --git a/OpenSim/Services/HypergridService/GatekeeperService.cs b/OpenSim/Services/HypergridService/GatekeeperService.cs
index cbe1af0..0a3e70b 100644
--- a/OpenSim/Services/HypergridService/GatekeeperService.cs
+++ b/OpenSim/Services/HypergridService/GatekeeperService.cs
@@ -326,7 +326,7 @@ namespace OpenSim.Services.HypergridService
326 return false; 326 return false;
327 } 327 }
328 328
329 m_log.DebugFormat("[GATEKEEPER SERVICE]: User {0} is ok", aCircuit.Name); 329 m_log.DebugFormat("[GATEKEEPER SERVICE]: User is OK");
330 330
331 bool isFirstLogin = false; 331 bool isFirstLogin = false;
332 // 332 //
@@ -345,7 +345,7 @@ namespace OpenSim.Services.HypergridService
345 aCircuit.firstname, aCircuit.lastname); 345 aCircuit.firstname, aCircuit.lastname);
346 return false; 346 return false;
347 } 347 }
348 m_log.DebugFormat("[GATEKEEPER SERVICE]: Login presence {0} is ok", aCircuit.Name); 348 m_log.DebugFormat("[GATEKEEPER SERVICE]: Login presence ok");
349 349
350 // Also login foreigners with GridUser service 350 // Also login foreigners with GridUser service
351 if (m_GridUserService != null && account == null) 351 if (m_GridUserService != null && account == null)
@@ -376,8 +376,7 @@ namespace OpenSim.Services.HypergridService
376 reason = "Destination region not found"; 376 reason = "Destination region not found";
377 return false; 377 return false;
378 } 378 }
379 m_log.DebugFormat( 379 m_log.DebugFormat("[GATEKEEPER SERVICE]: destination ok: {0}", destination.RegionName);
380 "[GATEKEEPER SERVICE]: Destination {0} is ok for {1}", destination.RegionName, aCircuit.Name);
381 380
382 // 381 //
383 // Adjust the visible name 382 // Adjust the visible name
@@ -411,41 +410,8 @@ namespace OpenSim.Services.HypergridService
411 // Preserve our TeleportFlags we have gathered so-far 410 // Preserve our TeleportFlags we have gathered so-far
412 loginFlag |= (Constants.TeleportFlags) aCircuit.teleportFlags; 411 loginFlag |= (Constants.TeleportFlags) aCircuit.teleportFlags;
413 412
414 m_log.DebugFormat("[GATEKEEPER SERVICE]: Launching {0} {1}", aCircuit.Name, loginFlag); 413 m_log.DebugFormat("[GATEKEEPER SERVICE]: launching agent {0}", loginFlag);
415 414 return m_SimulationService.CreateAgent(destination, aCircuit, (uint)loginFlag, out reason);
416 bool success = m_SimulationService.CreateAgent(destination, aCircuit, (uint)loginFlag, out reason);
417
418 if (!success)
419 {
420 List<GridRegion> fallbackRegions = m_GridService.GetFallbackRegions(account.ScopeID, destination.RegionLocX, destination.RegionLocY);
421 if (fallbackRegions != null)
422 {
423 // Try the fallback regions
424 m_log.DebugFormat(
425 "[GATEKEEPER SERVICE]: Could not successfully log agent {0} into {1}. Trying fallback regions.",
426 aCircuit.Name, destination.RegionName);
427
428 foreach (GridRegion fallbackRegion in fallbackRegions)
429 {
430 m_log.DebugFormat(
431 "[GATEKEEPER SERVICE]: Trying fallback region {0} for {1}",
432 fallbackRegion.RegionName, aCircuit.Name);
433
434 success = m_SimulationService.CreateAgent(fallbackRegion, aCircuit, (uint)loginFlag, out reason);
435
436 if (success)
437 break;
438 }
439 }
440 else
441 {
442 m_log.DebugFormat(
443 "[GATEKEEPER SERVICE]: Could not successfully log agent {0} into {1} and no fallback regions to try.",
444 aCircuit.Name, destination.RegionName);
445 }
446 }
447
448 return success;
449 } 415 }
450 416
451 protected bool Authenticate(AgentCircuitData aCircuit) 417 protected bool Authenticate(AgentCircuitData aCircuit)