aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion
diff options
context:
space:
mode:
authorMelanie2009-12-29 18:35:06 +0000
committerMelanie2009-12-29 18:35:06 +0000
commit0b5cdc539c767b526f14cb7e7d97fd83bea14424 (patch)
treea2d3061e021f68b3208b02c9291e442c39a3226f /OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion
parentOne should not copy/paste so much :) (diff)
downloadopensim-SC_OLD-0b5cdc539c767b526f14cb7e7d97fd83bea14424.zip
opensim-SC_OLD-0b5cdc539c767b526f14cb7e7d97fd83bea14424.tar.gz
opensim-SC_OLD-0b5cdc539c767b526f14cb7e7d97fd83bea14424.tar.bz2
opensim-SC_OLD-0b5cdc539c767b526f14cb7e7d97fd83bea14424.tar.xz
Change teleports so the TeleportFlags are sent to the destination sim. It
can now determine if a connection is from login, teleport or crossing. Needed for a meaningful banlines implementation
Diffstat (limited to 'OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion')
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/LocalInterregionComms.cs4
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs17
2 files changed, 13 insertions, 8 deletions
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/LocalInterregionComms.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/LocalInterregionComms.cs
index bdfe3b1..d68c683 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/LocalInterregionComms.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/LocalInterregionComms.cs
@@ -144,7 +144,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
144 * Agent-related communications 144 * Agent-related communications
145 */ 145 */
146 146
147 public bool SendCreateChildAgent(ulong regionHandle, AgentCircuitData aCircuit, out string reason) 147 public bool SendCreateChildAgent(ulong regionHandle, AgentCircuitData aCircuit, uint teleportFlags, out string reason)
148 { 148 {
149 149
150 foreach (Scene s in m_sceneList) 150 foreach (Scene s in m_sceneList)
@@ -152,7 +152,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
152 if (s.RegionInfo.RegionHandle == regionHandle) 152 if (s.RegionInfo.RegionHandle == regionHandle)
153 { 153 {
154// m_log.DebugFormat("[LOCAL COMMS]: Found region {0} to send SendCreateChildAgent", regionHandle); 154// m_log.DebugFormat("[LOCAL COMMS]: Found region {0} to send SendCreateChildAgent", regionHandle);
155 return s.NewUserConnection(aCircuit, out reason); 155 return s.NewUserConnection(aCircuit, teleportFlags, out reason);
156 } 156 }
157 } 157 }
158 158
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs
index 710e3ca..44458d1 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Interregion/RESTInterregionComms.cs
@@ -157,10 +157,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
157 * Agent-related communications 157 * Agent-related communications
158 */ 158 */
159 159
160 public bool SendCreateChildAgent(ulong regionHandle, AgentCircuitData aCircuit, out string reason) 160 public bool SendCreateChildAgent(ulong regionHandle, AgentCircuitData aCircuit, uint teleportFlags, out string reason)
161 { 161 {
162 // Try local first 162 // Try local first
163 if (m_localBackend.SendCreateChildAgent(regionHandle, aCircuit, out reason)) 163 if (m_localBackend.SendCreateChildAgent(regionHandle, aCircuit, teleportFlags, out reason))
164 return true; 164 return true;
165 165
166 // else do the remote thing 166 // else do the remote thing
@@ -173,7 +173,7 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
173 { 173 {
174 m_regionClient.SendUserInformation(regInfo, aCircuit); 174 m_regionClient.SendUserInformation(regInfo, aCircuit);
175 175
176 return m_regionClient.DoCreateChildAgentCall(regInfo, aCircuit, "None", out reason); 176 return m_regionClient.DoCreateChildAgentCall(regInfo, aCircuit, "None", teleportFlags, out reason);
177 } 177 }
178 //else 178 //else
179 // m_log.Warn("[REST COMMS]: Region not found " + regionHandle); 179 // m_log.Warn("[REST COMMS]: Region not found " + regionHandle);
@@ -436,11 +436,16 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Interregion
436 } 436 }
437 437
438 OSDMap resp = new OSDMap(2); 438 OSDMap resp = new OSDMap(2);
439 string reason = String.Empty; 439 string reason = String.Empty;
440 440 uint teleportFlags = 0;
441 if (args.ContainsKey("teleport_flags"))
442 {
443 teleportFlags = args["teleport_flags"].AsUInteger();
444 }
445
441 // This is the meaning of POST agent 446 // This is the meaning of POST agent
442 m_regionClient.AdjustUserInformation(aCircuit); 447 m_regionClient.AdjustUserInformation(aCircuit);
443 bool result = m_localBackend.SendCreateChildAgent(regionhandle, aCircuit, out reason); 448 bool result = m_localBackend.SendCreateChildAgent(regionhandle, aCircuit, teleportFlags, out reason);
444 449
445 resp["reason"] = OSD.FromString(reason); 450 resp["reason"] = OSD.FromString(reason);
446 resp["success"] = OSD.FromBoolean(result); 451 resp["success"] = OSD.FromBoolean(result);