diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 2006c2b..b1a79c2 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2296,7 +2296,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2296 | /// </summary> | 2296 | /// </summary> |
2297 | public void RegisterCommsEvents() | 2297 | public void RegisterCommsEvents() |
2298 | { | 2298 | { |
2299 | m_sceneGridService.OnExpectUser += NewUserConnection; | 2299 | m_sceneGridService.OnExpectUser += HandleNewUserConnection; |
2300 | m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; | 2300 | m_sceneGridService.OnAvatarCrossingIntoRegion += AgentCrossing; |
2301 | m_sceneGridService.OnCloseAgentConnection += IncomingCloseAgent; | 2301 | m_sceneGridService.OnCloseAgentConnection += IncomingCloseAgent; |
2302 | m_sceneGridService.OnRegionUp += OtherRegionUp; | 2302 | m_sceneGridService.OnRegionUp += OtherRegionUp; |
@@ -2328,7 +2328,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2328 | m_sceneGridService.OnExpectPrim -= IncomingInterRegionPrimGroup; | 2328 | m_sceneGridService.OnExpectPrim -= IncomingInterRegionPrimGroup; |
2329 | //m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate; | 2329 | //m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate; |
2330 | m_sceneGridService.OnRegionUp -= OtherRegionUp; | 2330 | m_sceneGridService.OnRegionUp -= OtherRegionUp; |
2331 | m_sceneGridService.OnExpectUser -= NewUserConnection; | 2331 | m_sceneGridService.OnExpectUser -= HandleNewUserConnection; |
2332 | m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; | 2332 | m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; |
2333 | m_sceneGridService.OnCloseAgentConnection -= IncomingCloseAgent; | 2333 | m_sceneGridService.OnCloseAgentConnection -= IncomingCloseAgent; |
2334 | m_sceneGridService.OnGetLandData -= GetLandData; | 2334 | m_sceneGridService.OnGetLandData -= GetLandData; |
@@ -2340,12 +2340,26 @@ namespace OpenSim.Region.Framework.Scenes | |||
2340 | } | 2340 | } |
2341 | 2341 | ||
2342 | /// <summary> | 2342 | /// <summary> |
2343 | /// A handler for the SceneCommunicationService event, to match that events return type of void. | ||
2344 | /// Use NewUserConnection() directly if possible so the return type can refuse connections. | ||
2345 | /// At the moment nothing actually seems to use this event, | ||
2346 | /// as everything is switching to calling the NewUserConnection method directly. | ||
2347 | /// </summary> | ||
2348 | /// <param name="agent"></param> | ||
2349 | public void HandleNewUserConnection(AgentCircuitData agent) | ||
2350 | { | ||
2351 | NewUserConnection(agent); | ||
2352 | } | ||
2353 | |||
2354 | /// <summary> | ||
2343 | /// Do the work necessary to initiate a new user connection for a particular scene. | 2355 | /// Do the work necessary to initiate a new user connection for a particular scene. |
2344 | /// At the moment, this consists of setting up the caps infrastructure | 2356 | /// At the moment, this consists of setting up the caps infrastructure |
2357 | /// The return bool should allow for connections to be refused, but as not all calling paths | ||
2358 | /// take proper notice of it let, we allowed banned users in still. | ||
2345 | /// </summary> | 2359 | /// </summary> |
2346 | /// <param name="regionHandle"></param> | 2360 | /// <param name="regionHandle"></param> |
2347 | /// <param name="agent"></param> | 2361 | /// <param name="agent"></param> |
2348 | public void NewUserConnection(AgentCircuitData agent) | 2362 | public bool NewUserConnection(AgentCircuitData agent) |
2349 | { | 2363 | { |
2350 | CapsModule.NewUserConnection(agent); | 2364 | CapsModule.NewUserConnection(agent); |
2351 | 2365 | ||
@@ -2358,7 +2372,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2358 | 2372 | ||
2359 | sp.AdjustKnownSeeds(); | 2373 | sp.AdjustKnownSeeds(); |
2360 | 2374 | ||
2361 | return; | 2375 | return true; |
2362 | } | 2376 | } |
2363 | 2377 | ||
2364 | // Don't disable this log message - it's too helpful | 2378 | // Don't disable this log message - it's too helpful |
@@ -2371,6 +2385,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2371 | m_log.WarnFormat( | 2385 | m_log.WarnFormat( |
2372 | "[CONNECTION BEGIN]: Incoming user {0} at {1} is on the region banlist", | 2386 | "[CONNECTION BEGIN]: Incoming user {0} at {1} is on the region banlist", |
2373 | agent.AgentID, RegionInfo.RegionName); | 2387 | agent.AgentID, RegionInfo.RegionName); |
2388 | //return false; | ||
2374 | } | 2389 | } |
2375 | 2390 | ||
2376 | CapsModule.AddCapsHandler(agent.AgentID); | 2391 | CapsModule.AddCapsHandler(agent.AgentID); |
@@ -2402,6 +2417,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
2402 | m_log.WarnFormat( | 2417 | m_log.WarnFormat( |
2403 | "[CONNECTION BEGIN]: We couldn't find a User Info record for {0}. This is usually an indication that the UUID we're looking up is invalid", agent.AgentID); | 2418 | "[CONNECTION BEGIN]: We couldn't find a User Info record for {0}. This is usually an indication that the UUID we're looking up is invalid", agent.AgentID); |
2404 | } | 2419 | } |
2420 | |||
2421 | return true; | ||
2405 | } | 2422 | } |
2406 | 2423 | ||
2407 | public void UpdateCircuitData(AgentCircuitData data) | 2424 | public void UpdateCircuitData(AgentCircuitData data) |
@@ -2414,7 +2431,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2414 | return m_authenticateHandler.TryChangeCiruitCode(oldcc, newcc); | 2431 | return m_authenticateHandler.TryChangeCiruitCode(oldcc, newcc); |
2415 | } | 2432 | } |
2416 | 2433 | ||
2417 | protected void HandleLogOffUserFromGrid(UUID AvatarID, UUID RegionSecret, string message) | 2434 | public void HandleLogOffUserFromGrid(UUID AvatarID, UUID RegionSecret, string message) |
2418 | { | 2435 | { |
2419 | ScenePresence loggingOffUser = null; | 2436 | ScenePresence loggingOffUser = null; |
2420 | loggingOffUser = GetScenePresence(AvatarID); | 2437 | loggingOffUser = GetScenePresence(AvatarID); |