aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Framework
diff options
context:
space:
mode:
authorDiva Canto2014-06-06 11:04:53 -0700
committerJustin Clark-Casey2014-06-10 20:28:47 +0100
commitffe07527fcd95c1bd8a8d29432fe33e350354538 (patch)
tree614ff2e79275c3aef16bd55be8345e68eb4e6ebd /OpenSim/Region/CoreModules/Framework
parentBetter comment regarding SizeX and SizeY (diff)
downloadopensim-SC_OLD-ffe07527fcd95c1bd8a8d29432fe33e350354538.zip
opensim-SC_OLD-ffe07527fcd95c1bd8a8d29432fe33e350354538.tar.gz
opensim-SC_OLD-ffe07527fcd95c1bd8a8d29432fe33e350354538.tar.bz2
opensim-SC_OLD-ffe07527fcd95c1bd8a8d29432fe33e350354538.tar.xz
Added simulation version compatibility check so that agents coming from 0.7.6 to a varregion running in 0.8 and above will be denied teleport, rather than be allowed and crash the viewer.
Diffstat (limited to 'OpenSim/Region/CoreModules/Framework')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs10
1 files changed, 6 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index e583590..b157e6b 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -208,7 +208,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
208 protected virtual void InitialiseCommon(IConfigSource source) 208 protected virtual void InitialiseCommon(IConfigSource source)
209 { 209 {
210 string transferVersionName = "SIMULATION"; 210 string transferVersionName = "SIMULATION";
211 float maxTransferVersion = 0.2f; 211 float maxTransferVersion = 0.3f;
212 212
213 IConfig hypergridConfig = source.Configs["Hypergrid"]; 213 IConfig hypergridConfig = source.Configs["Hypergrid"];
214 if (hypergridConfig != null) 214 if (hypergridConfig != null)
@@ -760,8 +760,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
760 760
761 string reason; 761 string reason;
762 string version; 762 string version;
763 string myversion = string.Format("{0}/{1}", OutgoingTransferVersionName, MaxOutgoingTransferVersion);
763 if (!Scene.SimulationService.QueryAccess( 764 if (!Scene.SimulationService.QueryAccess(
764 finalDestination, sp.ControllingClient.AgentId, homeURI, true, position, out version, out reason)) 765 finalDestination, sp.ControllingClient.AgentId, homeURI, true, position, myversion, out version, out reason))
765 { 766 {
766 sp.ControllingClient.SendTeleportFailed(reason); 767 sp.ControllingClient.SendTeleportFailed(reason);
767 768
@@ -833,7 +834,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
833 if (versionComponents.Length >= 2) 834 if (versionComponents.Length >= 2)
834 float.TryParse(versionComponents[1], out versionNumber); 835 float.TryParse(versionComponents[1], out versionNumber);
835 836
836 if (versionNumber == 0.2f && MaxOutgoingTransferVersion >= versionNumber) 837 if (versionNumber >= 0.2f && MaxOutgoingTransferVersion >= versionNumber)
837 TransferAgent_V2(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason); 838 TransferAgent_V2(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason);
838 else 839 else
839 TransferAgent_V1(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason); 840 TransferAgent_V1(sp, agentCircuit, reg, finalDestination, endPoint, teleportFlags, oldRegionX, newRegionX, oldRegionY, newRegionY, version, out reason);
@@ -1509,8 +1510,9 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1509 } 1510 }
1510 1511
1511 // Check to see if we have access to the target region. 1512 // Check to see if we have access to the target region.
1513 string myversion = string.Format("{0}/{1}", OutgoingTransferVersionName, MaxOutgoingTransferVersion);
1512 if (neighbourRegion != null 1514 if (neighbourRegion != null
1513 && !scene.SimulationService.QueryAccess(neighbourRegion, agentID, homeURI, false, newpos, out version, out failureReason)) 1515 && !scene.SimulationService.QueryAccess(neighbourRegion, agentID, homeURI, false, newpos, myversion, out version, out failureReason))
1514 { 1516 {
1515 // remember banned 1517 // remember banned
1516 m_bannedRegionCache.Add(neighbourRegion.RegionHandle, agentID); 1518 m_bannedRegionCache.Add(neighbourRegion.RegionHandle, agentID);