diff options
author | Melanie | 2010-12-09 01:55:32 +0000 |
---|---|---|
committer | Melanie | 2010-12-09 01:55:32 +0000 |
commit | 4df1d25d23d76ee3ae8c7da155462b57735f6418 (patch) | |
tree | 3d03a3cf9fb54f6992b67a6e2b23d5ea8def084d /OpenSim/Region/CoreModules | |
parent | Added an exception handler on CreateObject handler, just in case there's an e... (diff) | |
download | opensim-SC-4df1d25d23d76ee3ae8c7da155462b57735f6418.zip opensim-SC-4df1d25d23d76ee3ae8c7da155462b57735f6418.tar.gz opensim-SC-4df1d25d23d76ee3ae8c7da155462b57735f6418.tar.bz2 opensim-SC-4df1d25d23d76ee3ae8c7da155462b57735f6418.tar.xz |
Plumb a code path for the entity transfer module to ask a destination scene
whether or not an agent is allowed there as a root agent.
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | 17 | ||||
-rw-r--r-- | OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs | 17 |
2 files changed, 34 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs index e32dbb3..37b403e 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/LocalSimulationConnector.cs | |||
@@ -257,6 +257,23 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
257 | return false; | 257 | return false; |
258 | } | 258 | } |
259 | 259 | ||
260 | public bool QueryAccess(GridRegion destination, UUID id) | ||
261 | { | ||
262 | if (destination == null) | ||
263 | return false; | ||
264 | |||
265 | foreach (Scene s in m_sceneList) | ||
266 | { | ||
267 | if (s.RegionInfo.RegionHandle == destination.RegionHandle) | ||
268 | { | ||
269 | //m_log.Debug("[LOCAL COMMS]: Found region to send QueryAccess"); | ||
270 | return s.QueryAccess(id); | ||
271 | } | ||
272 | } | ||
273 | //m_log.Debug("[LOCAL COMMS]: region not found for QueryAccess"); | ||
274 | return false; | ||
275 | } | ||
276 | |||
260 | public bool ReleaseAgent(UUID origin, UUID id, string uri) | 277 | public bool ReleaseAgent(UUID origin, UUID id, string uri) |
261 | { | 278 | { |
262 | foreach (Scene s in m_sceneList) | 279 | foreach (Scene s in m_sceneList) |
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs index 3f577f2..387a9b8 100644 --- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs +++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Simulation/RemoteSimulationConnector.cs | |||
@@ -239,6 +239,23 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Simulation | |||
239 | 239 | ||
240 | } | 240 | } |
241 | 241 | ||
242 | public bool QueryAccess(GridRegion destination, UUID id) | ||
243 | { | ||
244 | if (destination == null) | ||
245 | return false; | ||
246 | |||
247 | // Try local first | ||
248 | if (m_localBackend.QueryAccess(destination, id)) | ||
249 | return true; | ||
250 | |||
251 | // else do the remote thing | ||
252 | if (!m_localBackend.IsLocalRegion(destination.RegionHandle)) | ||
253 | return m_remoteConnector.QueryAccess(destination, id); | ||
254 | |||
255 | return false; | ||
256 | |||
257 | } | ||
258 | |||
242 | public bool ReleaseAgent(UUID origin, UUID id, string uri) | 259 | public bool ReleaseAgent(UUID origin, UUID id, string uri) |
243 | { | 260 | { |
244 | // Try local first | 261 | // Try local first |