From c1beb85315aad09197ca7ffaa8ec194346af82cb Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Thu, 20 Mar 2008 20:04:45 +0000 Subject: * First draft resolution of mantis 777, 734, 389 - scripts do not save in non-home regions * Should work in multi-region standalone and grid modes * This should also solve other non-home region caps issues (map requests, RC client inventory requests, etc) * We now pass CAPS information on to the destination region on region crossing, and set up a CAPS object when an agent becomes a master * Current limitation is that this will only work if your http_listener_port is 9000 * This is a very early code cut (lots of bad practice, hard coding and inefficiency). However, I wanted to get this out there for feedback and my own sanity. Next few patches will clean up the mess. --- OpenSim/Region/Environment/Scenes/ScenePresence.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs') diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 050bf95..67a4b97 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -545,6 +545,7 @@ namespace OpenSim.Region.Environment.Scenes m_scene.SwapRootAgentCount(false); m_scene.CommsManager.UserProfileCacheService.UpdateUserInventory(m_uuid); + m_scene.AddCapsHandler(m_uuid); //if (!m_gotAllObjectsInScene) //{ m_scene.SendAllSceneObjectsToClient(this); @@ -1616,7 +1617,15 @@ namespace OpenSim.Region.Environment.Scenes if (res) { AgentCircuitData circuitdata = m_controllingClient.RequestClientInfo(); - string capsPath = Util.GetCapsURL(m_controllingClient.AgentId); + + // TODO Should construct this behind a method + string capsPath = + "http://" + neighbourRegion.ExternalHostName + ":" + 9000 + + "/CAPS/" + circuitdata.CapsPath + "0000/"; + + m_log.DebugFormat( + "[CONNECTION DEBUGGING]: Sending new CAPS seed url {0} to avatar {1}", capsPath, m_uuid); + m_controllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath); MakeChildAgent(); -- cgit v1.1