aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-03-25 18:47:14 +0000
committerJustin Clarke Casey2008-03-25 18:47:14 +0000
commit8c74cf775895276e485f82b04c23099db09dc682 (patch)
tree7f11eafe072b32a0f9b949844e9150c8167d9bb6 /OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
parent* Use Face normal to offset new prim instead of the hard coded pos.Z += 0.25f... (diff)
downloadopensim-SC-8c74cf775895276e485f82b04c23099db09dc682.zip
opensim-SC-8c74cf775895276e485f82b04c23099db09dc682.tar.gz
opensim-SC-8c74cf775895276e485f82b04c23099db09dc682.tar.bz2
opensim-SC-8c74cf775895276e485f82b04c23099db09dc682.tar.xz
* Tear down CAPS and http handlers when an agent leaves a region (via crossing, teleport or logout)
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs11
1 files changed, 10 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
index f2b2f20..318b04a 100644
--- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
@@ -547,6 +547,12 @@ namespace OpenSim.Region.Environment.Scenes
547 if(destRegionUp) 547 if(destRegionUp)
548 { 548 {
549 avatar.Close(); 549 avatar.Close();
550
551 // Compared to ScenePresence.CrossToNewRegion(), there's no obvious code to handle a teleport
552 // failure at this point (unlike a border crossing failure). So perhaps this can never fail
553 // once we reach here...
554 avatar.Scene.RemoveCapsHandler(avatar.UUID);
555
550 m_commsProvider.InterRegion.InformRegionOfChildAgent(regionHandle, agent); 556 m_commsProvider.InterRegion.InformRegionOfChildAgent(regionHandle, agent);
551 m_commsProvider.InterRegion.ExpectAvatarCrossing(regionHandle, avatar.ControllingClient.AgentId, 557 m_commsProvider.InterRegion.ExpectAvatarCrossing(regionHandle, avatar.ControllingClient.AgentId,
552 position, false); 558 position, false);
@@ -555,7 +561,10 @@ namespace OpenSim.Region.Environment.Scenes
555 // TODO Should construct this behind a method 561 // TODO Should construct this behind a method
556 string capsPath = 562 string capsPath =
557 "http://" + reg.ExternalHostName + ":" + reg.HttpPort 563 "http://" + reg.ExternalHostName + ":" + reg.HttpPort
558 + "/CAPS/" + circuitdata.CapsPath + "0000/"; 564 + "/CAPS/" + circuitdata.CapsPath + "0000/";
565
566 m_log.DebugFormat(
567 "[CONNECTION DEBUGGING]: Sending new CAPS seed url {0} to avatar {1}", capsPath, avatar.UUID);
559 568
560 avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4), 569 avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4),
561 capsPath); 570 capsPath);