aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Services
diff options
context:
space:
mode:
authorOren Hurvitz2014-05-18 19:45:27 +0300
committerOren Hurvitz2014-05-19 11:19:11 +0100
commit47b84875fd2b9f01140288a2695c33f5ef4466c0 (patch)
treedd22882762b4e4ec411de5c37d98fd1a394835b2 /OpenSim/Services
parentLog the user when an inventory operation is blocked because the item/folder i... (diff)
downloadopensim-SC-47b84875fd2b9f01140288a2695c33f5ef4466c0.zip
opensim-SC-47b84875fd2b9f01140288a2695c33f5ef4466c0.tar.gz
opensim-SC-47b84875fd2b9f01140288a2695c33f5ef4466c0.tar.bz2
opensim-SC-47b84875fd2b9f01140288a2695c33f5ef4466c0.tar.xz
Tell QueryAccess explicitly whether the user is coming in via Teleport or Cross, because the permission checks are different.
Previously we used a heuristic of checking if the entry position is 0 to differentiate between Teleport and Cross, but that doesn't work anymore since we've started providing the precise entry position for cross, too. That's required in order to ensure that the user is allowed to enter the parcel that he's walking into.
Diffstat (limited to 'OpenSim/Services')
-rw-r--r--OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs3
-rw-r--r--OpenSim/Services/Interfaces/ISimulationService.cs3
2 files changed, 4 insertions, 2 deletions
diff --git a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
index d9fe5a0..099ba98 100644
--- a/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Simulation/SimulationServiceConnector.cs
@@ -282,7 +282,7 @@ namespace OpenSim.Services.Connectors.Simulation
282 } 282 }
283 283
284 284
285 public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, Vector3 position, out string version, out string reason) 285 public bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, out string version, out string reason)
286 { 286 {
287 reason = "Failed to contact destination"; 287 reason = "Failed to contact destination";
288 version = "Unknown"; 288 version = "Unknown";
@@ -296,6 +296,7 @@ namespace OpenSim.Services.Connectors.Simulation
296 string uri = destination.ServerURI + AgentPath() + agentID + "/" + destination.RegionID.ToString() + "/"; 296 string uri = destination.ServerURI + AgentPath() + agentID + "/" + destination.RegionID.ToString() + "/";
297 297
298 OSDMap request = new OSDMap(); 298 OSDMap request = new OSDMap();
299 request.Add("viaTeleport", OSD.FromBoolean(viaTeleport));
299 request.Add("position", OSD.FromString(position.ToString())); 300 request.Add("position", OSD.FromString(position.ToString()));
300 if (agentHomeURI != null) 301 if (agentHomeURI != null)
301 request.Add("agent_home_uri", OSD.FromString(agentHomeURI)); 302 request.Add("agent_home_uri", OSD.FromString(agentHomeURI));
diff --git a/OpenSim/Services/Interfaces/ISimulationService.cs b/OpenSim/Services/Interfaces/ISimulationService.cs
index 375a35c..8b87ac0 100644
--- a/OpenSim/Services/Interfaces/ISimulationService.cs
+++ b/OpenSim/Services/Interfaces/ISimulationService.cs
@@ -83,11 +83,12 @@ namespace OpenSim.Services.Interfaces
83 /// <param name="destination">Desired destination</param> 83 /// <param name="destination">Desired destination</param>
84 /// <param name="agentID">The visitor's User ID</param> 84 /// <param name="agentID">The visitor's User ID</param>
85 /// <param name="agentHomeURI">The visitor's Home URI. Will be missing (null) in older OpenSims.</param> 85 /// <param name="agentHomeURI">The visitor's Home URI. Will be missing (null) in older OpenSims.</param>
86 /// <param name="viaTeleport">True: via teleport; False: via cross (walking)</param>
86 /// <param name="position">Position in the region</param> 87 /// <param name="position">Position in the region</param>
87 /// <param name="version"></param> 88 /// <param name="version"></param>
88 /// <param name="reason">[out] Optional error message</param> 89 /// <param name="reason">[out] Optional error message</param>
89 /// <returns>True: ok; False: not allowed</returns> 90 /// <returns>True: ok; False: not allowed</returns>
90 bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, Vector3 position, out string version, out string reason); 91 bool QueryAccess(GridRegion destination, UUID agentID, string agentHomeURI, bool viaTeleport, Vector3 position, out string version, out string reason);
91 92
92 /// <summary> 93 /// <summary>
93 /// Message from receiving region to departing region, telling it got contacted by the client. 94 /// Message from receiving region to departing region, telling it got contacted by the client.