diff options
author | Dr Scofield | 2009-05-05 16:17:52 +0000 |
---|---|---|
committer | Dr Scofield | 2009-05-05 16:17:52 +0000 |
commit | e0a06f641668cd5c25a7854af2faf8a61c4053ee (patch) | |
tree | c2a4620c4bdc0e479ca16528cd9e0524529a7998 /OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | |
parent | * Fix http://opensimulator.org/mantis/view.php?id=3585 (diff) | |
download | opensim-SC-e0a06f641668cd5c25a7854af2faf8a61c4053ee.zip opensim-SC-e0a06f641668cd5c25a7854af2faf8a61c4053ee.tar.gz opensim-SC-e0a06f641668cd5c25a7854af2faf8a61c4053ee.tar.bz2 opensim-SC-e0a06f641668cd5c25a7854af2faf8a61c4053ee.tar.xz |
- moving banned check and public/private check to
Scene.NewUserConnection()
- adding reason reporting
this enforces estate bans very early on and prevents us from
circulating client objects that we'd then have to retract once we
realize that the client is not allowed into the region
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs index 2fe005d..0699552 100644 --- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs | |||
@@ -296,8 +296,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
296 | string capsPath = "http://" + reg.ExternalHostName + ":" + reg.HttpPort | 296 | string capsPath = "http://" + reg.ExternalHostName + ":" + reg.HttpPort |
297 | + "/CAPS/" + a.CapsPath + "0000/"; | 297 | + "/CAPS/" + a.CapsPath + "0000/"; |
298 | 298 | ||
299 | string reason = String.Empty; | ||
300 | |||
299 | //bool regionAccepted = m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, a); | 301 | //bool regionAccepted = m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, a); |
300 | bool regionAccepted = m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, a); | 302 | bool regionAccepted = m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, a, out reason); |
301 | 303 | ||
302 | if (regionAccepted && newAgent) | 304 | if (regionAccepted && newAgent) |
303 | { | 305 | { |
@@ -785,11 +787,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
785 | agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); | 787 | agentCircuit.CapsPath = CapsUtil.GetRandomCapsObjectPath(); |
786 | } | 788 | } |
787 | 789 | ||
790 | string reason = String.Empty; | ||
791 | |||
788 | // Let's create an agent there if one doesn't exist yet. | 792 | // Let's create an agent there if one doesn't exist yet. |
789 | //if (!m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agentCircuit)) | 793 | //if (!m_commsProvider.InterRegion.InformRegionOfChildAgent(reg.RegionHandle, agentCircuit)) |
790 | if (!m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, agentCircuit)) | 794 | if (!m_interregionCommsOut.SendCreateChildAgent(reg.RegionHandle, agentCircuit, out reason)) |
791 | { | 795 | { |
792 | avatar.ControllingClient.SendTeleportFailed("Destination is not accepting teleports."); | 796 | avatar.ControllingClient.SendTeleportFailed(String.Format("Destination is not accepting teleports: {0}", |
797 | reason)); | ||
793 | return; | 798 | return; |
794 | } | 799 | } |
795 | 800 | ||