Temporary fix for the region crossing crash, Although we need to start to change and improve how we handle caps.

This commit is contained in:
MW
2007-08-15 15:24:37 +00:00
parent 5699bb2e64
commit 217d511077
7 changed files with 154 additions and 125 deletions

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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();
}