aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authorTeravus Ovares2008-03-30 08:01:47 +0000
committerTeravus Ovares2008-03-30 08:01:47 +0000
commitfd2caf5f1673ad14702d89db9804f841c5cb861a (patch)
tree18fd4ae03180b14df41f93544afa0cc9d5ec5309 /OpenSim/Region/Environment
parent* Stop the grid inventory service sending all folder and item details twice (diff)
downloadopensim-SC-fd2caf5f1673ad14702d89db9804f841c5cb861a.zip
opensim-SC-fd2caf5f1673ad14702d89db9804f841c5cb861a.tar.gz
opensim-SC-fd2caf5f1673ad14702d89db9804f841c5cb861a.tar.bz2
opensim-SC-fd2caf5f1673ad14702d89db9804f841c5cb861a.tar.xz
This update has good news and bad news, first the bad.
* This update breaks inter-region communications, sorry. * You will need to run prebuild. Next, the good; * This update solves the unexpected binary element when Linux simulators inform windows simulators and vice versa. So Linux Simulators and Windows simulators are 100% compatible again. * This update introduces an Integer in the prim crossing method to tell the receiving simulator which XML method to use to load the prim that crossed the border. If the receiving prim doesn't support the method, the prim crossing fails and no prims are lost. That being said, it's best to update all your simulators to this revision at once.
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs17
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs16
2 files changed, 25 insertions, 8 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index c07f718..819815b 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1242,6 +1242,9 @@ namespace OpenSim.Region.Environment.Scenes
1242 m_log.Warn("Prim crossing: " + grp.UUID.ToString()); 1242 m_log.Warn("Prim crossing: " + grp.UUID.ToString());
1243 int thisx = (int)RegionInfo.RegionLocX; 1243 int thisx = (int)RegionInfo.RegionLocX;
1244 int thisy = (int)RegionInfo.RegionLocY; 1244 int thisy = (int)RegionInfo.RegionLocY;
1245
1246 int primcrossingXMLmethod = 0;
1247
1245 ulong newRegionHandle = 0; 1248 ulong newRegionHandle = 0;
1246 LLVector3 pos = position; 1249 LLVector3 pos = position;
1247 1250
@@ -1279,7 +1282,7 @@ namespace OpenSim.Region.Environment.Scenes
1279 if (newRegionHandle != 0) 1282 if (newRegionHandle != 0)
1280 { 1283 {
1281 bool successYN = false; 1284 bool successYN = false;
1282 successYN = m_sceneGridService.PrimCrossToNeighboringRegion(newRegionHandle, grp.UUID, m_sceneXmlLoader.SavePrimGroupToXML2String(grp)); 1285 successYN = m_sceneGridService.PrimCrossToNeighboringRegion(newRegionHandle, grp.UUID, m_sceneXmlLoader.SavePrimGroupToXML2String(grp), primcrossingXMLmethod);
1283 if (successYN) 1286 if (successYN)
1284 { 1287 {
1285 // We remove the object here 1288 // We remove the object here
@@ -1306,10 +1309,18 @@ namespace OpenSim.Region.Environment.Scenes
1306 } 1309 }
1307 } 1310 }
1308 1311
1309 public void IncomingInterRegionPrimGroup(ulong regionHandle, LLUUID primID, string objXMLData) 1312 public bool IncomingInterRegionPrimGroup(ulong regionHandle, LLUUID primID, string objXMLData, int XMLMethod)
1310 { 1313 {
1311 m_log.Warn("{[INTERREGION]: A new prim arrived from a neighbor"); 1314 m_log.Warn("{[INTERREGION]: A new prim arrived from a neighbor");
1312 m_sceneXmlLoader.LoadGroupFromXml2String(objXMLData); 1315 if (XMLMethod == 0)
1316 {
1317 m_sceneXmlLoader.LoadGroupFromXml2String(objXMLData);
1318 return true;
1319 }
1320 else
1321 {
1322 return false;
1323 }
1313 1324
1314 } 1325 }
1315 1326
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
index 7653bf4..db2327e 100644
--- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
@@ -168,12 +168,16 @@ namespace OpenSim.Region.Environment.Scenes
168 } 168 }
169 } 169 }
170 170
171 protected void IncomingPrimCrossing(ulong regionHandle, LLUUID primID, String objXMLData) 171 protected bool IncomingPrimCrossing(ulong regionHandle, LLUUID primID, String objXMLData, int XMLMethod)
172 { 172 {
173 handlerExpectPrim = OnExpectPrim; 173 handlerExpectPrim = OnExpectPrim;
174 if (handlerExpectPrim != null) 174 if (handlerExpectPrim != null)
175 { 175 {
176 handlerExpectPrim(regionHandle, primID, objXMLData); 176 return handlerExpectPrim(regionHandle, primID, objXMLData, XMLMethod);
177 }
178 else
179 {
180 return false;
177 } 181 }
178 182
179 } 183 }
@@ -342,8 +346,10 @@ namespace OpenSim.Region.Environment.Scenes
342 private void InformNeighboursThatRegionIsUpAsync(RegionInfo region, ulong regionhandle) 346 private void InformNeighboursThatRegionIsUpAsync(RegionInfo region, ulong regionhandle)
343 { 347 {
344 m_log.Info("[INTERGRID]: Starting to inform neighbors that I'm here"); 348 m_log.Info("[INTERGRID]: Starting to inform neighbors that I'm here");
349 //RegionUpData regiondata = new RegionUpData(region.RegionLocX, region.RegionLocY, region.ExternalHostName, region.InternalEndPoint.Port);
350
345 bool regionAccepted = 351 bool regionAccepted =
346 m_commsProvider.InterRegion.RegionUp((new SearializableRegionInfo(region)), regionhandle); 352 m_commsProvider.InterRegion.RegionUp(new SearializableRegionInfo(region), regionhandle);
347 353
348 if (regionAccepted) 354 if (regionAccepted)
349 { 355 {
@@ -605,9 +611,9 @@ namespace OpenSim.Region.Environment.Scenes
605 return m_commsProvider.InterRegion.ExpectAvatarCrossing(regionhandle, agentID, position, isFlying); 611 return m_commsProvider.InterRegion.ExpectAvatarCrossing(regionhandle, agentID, position, isFlying);
606 } 612 }
607 613
608 public bool PrimCrossToNeighboringRegion(ulong regionhandle, LLUUID primID, string objData) 614 public bool PrimCrossToNeighboringRegion(ulong regionhandle, LLUUID primID, string objData, int XMLMethod)
609 { 615 {
610 return m_commsProvider.InterRegion.InformRegionOfPrimCrossing(regionhandle, primID, objData); 616 return m_commsProvider.InterRegion.InformRegionOfPrimCrossing(regionhandle, primID, objData, XMLMethod);
611 } 617 }
612 618
613 619