From 217d511077cba75e48957bcbb0a0da8344fa8f4c Mon Sep 17 00:00:00 2001 From: MW Date: Wed, 15 Aug 2007 15:24:37 +0000 Subject: Temporary fix for the region crossing crash, Although we need to start to change and improve how we handle caps. --- OpenSim/Region/Communications/Local/LocalLoginService.cs | 1 - OpenSim/Region/Environment/Scenes/Scene.cs | 6 ++++-- OpenSim/Region/Environment/Scenes/ScenePresence.cs | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'OpenSim/Region') diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs index 661fbbe..88377bc 100644 --- a/OpenSim/Region/Communications/Local/LocalLoginService.cs +++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs @@ -89,7 +89,6 @@ namespace OpenSim.Region.Communications.Local response.RegionX = reg.RegionLocX; response.RegionY = reg.RegionLocY; - //following port needs changing as we don't want a http listener for every region (or do we?) response.SeedCapability = "http://" + reg.ExternalHostName + ":" + this.serversInfo.HttpListenerPort.ToString() + "/CAPS/" + capsPath + "0000/"; theUser.currentAgent.currentRegion = reg.SimUUID; theUser.currentAgent.currentHandle = reg.RegionHandle; diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 0fa3ab7..3ee1f19 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs @@ -36,6 +36,7 @@ using OpenSim.Framework.Console; using OpenSim.Framework.Interfaces; using OpenSim.Framework.Servers; using OpenSim.Framework.Types; +using OpenSim.Framework.Utilities; using OpenSim.Physics.Manager; using OpenSim.Framework.Communications.Caches; using OpenSim.Region.Environment.LandManagement; @@ -836,6 +837,7 @@ namespace OpenSim.Region.Environment.Scenes Caps cap = new Caps(assetCache, httpListener, m_regInfo.ExternalHostName, m_regInfo.ExternalEndPoint.Port, agent.CapsPath, agent.AgentID); + Util.SetCapsURL(agent.AgentID, "http://" + m_regInfo.ExternalHostName + ":" + httpListener.Port.ToString() + "/CAPS/" + agent.CapsPath + "0000/"); cap.RegisterHandlers(); cap.AddNewInventoryItem = this.AddInventoryItem; cap.ItemUpdatedCall = this.UpdateInventoryItemAsset; @@ -948,7 +950,7 @@ namespace OpenSim.Region.Environment.Scenes //TODO: following line is hard coded to port 9000, really need to change this as soon as possible AgentCircuitData circuitdata = remoteClient.RequestClientInfo(); - string capsPath = "http://" + reg.ExternalEndPoint.Address.ToString() + ":9000/CAPS/" + this.AuthenticateHandler.AgentCircuits[circuitdata.circuitcode].CapsPath + "0000/"; + string capsPath = Util.GetCapsURL(remoteClient.AgentId); remoteClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4), capsPath); } } @@ -1111,7 +1113,7 @@ namespace OpenSim.Region.Environment.Scenes item.assetID = asset.FullID; userInfo.updateItem(remoteClient.AgentId, item); - remoteClient.SendInventoryItemUpdate(item); + // remoteClient.SendInventoryItemUpdate(item); return (asset.FullID); } diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 1be1e7a..6e4fcda 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs @@ -34,6 +34,7 @@ using libsecondlife.Packets; using OpenSim.Framework.Console; using OpenSim.Framework.Interfaces; using OpenSim.Framework.Types; +using OpenSim.Framework.Utilities; using OpenSim.Physics.Manager; namespace OpenSim.Region.Environment.Scenes @@ -623,7 +624,7 @@ namespace OpenSim.Region.Environment.Scenes { //TODO: following line is hard coded to port 9000, really need to change this as soon as possible AgentCircuitData circuitdata = this.ControllingClient.RequestClientInfo(); - string capsPath = "http://" + neighbourRegion.ExternalEndPoint.Address.ToString() + ":9000/CAPS/" +this.m_scene.AuthenticateHandler.AgentCircuits[circuitdata.circuitcode].CapsPath + "0000/"; + string capsPath = Util.GetCapsURL(this.ControllingClient.AgentId); this.ControllingClient.CrossRegion(neighbourHandle, newpos, vel, neighbourRegion.ExternalEndPoint, capsPath); this.MakeChildAgent(); } -- cgit v1.1