aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorMelanie2010-06-14 02:49:15 +0100
committerMelanie2010-06-14 02:49:15 +0100
commitfdf648bcf3cecc2236cc6761d33f3df5e0af136d (patch)
treedb65a301f98b6b998a901cdd887fec755e6d73dd /OpenSim/Region/Framework
parentD.U.H. #2. Inverted test. Again. Argh! (diff)
parentFixes attachments coming back upon being detached in neighbouring regions and... (diff)
downloadopensim-SC_OLD-fdf648bcf3cecc2236cc6761d33f3df5e0af136d.zip
opensim-SC_OLD-fdf648bcf3cecc2236cc6761d33f3df5e0af136d.tar.gz
opensim-SC_OLD-fdf648bcf3cecc2236cc6761d33f3df5e0af136d.tar.bz2
opensim-SC_OLD-fdf648bcf3cecc2236cc6761d33f3df5e0af136d.tar.xz
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs31
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs21
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs1
3 files changed, 14 insertions, 39 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index b58bfb8..82d4759 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -964,12 +964,6 @@ namespace OpenSim.Region.Framework.Scenes
964 // Let the grid service module know, so this can be cached 964 // Let the grid service module know, so this can be cached
965 m_eventManager.TriggerOnRegionUp(otherRegion); 965 m_eventManager.TriggerOnRegionUp(otherRegion);
966 966
967 RegionInfo regInfo = new RegionInfo(xcell, ycell, otherRegion.InternalEndPoint, otherRegion.ExternalHostName);
968 regInfo.RegionID = otherRegion.RegionID;
969 regInfo.RegionName = otherRegion.RegionName;
970 regInfo.ScopeID = otherRegion.ScopeID;
971 regInfo.ExternalHostName = otherRegion.ExternalHostName;
972 GridRegion r = new GridRegion(regInfo);
973 try 967 try
974 { 968 {
975 ForEachScenePresence(delegate(ScenePresence agent) 969 ForEachScenePresence(delegate(ScenePresence agent)
@@ -984,7 +978,7 @@ namespace OpenSim.Region.Framework.Scenes
984 old.Add(otherRegion.RegionHandle); 978 old.Add(otherRegion.RegionHandle);
985 agent.DropOldNeighbours(old); 979 agent.DropOldNeighbours(old);
986 if (m_teleportModule != null) 980 if (m_teleportModule != null)
987 m_teleportModule.EnableChildAgent(agent, r); 981 m_teleportModule.EnableChildAgent(agent, otherRegion);
988 } 982 }
989 } 983 }
990 ); 984 );
@@ -1546,6 +1540,7 @@ namespace OpenSim.Region.Framework.Scenes
1546 { 1540 {
1547 m_log.DebugFormat("[REGION]: Enabling logins for {0}", RegionInfo.RegionName); 1541 m_log.DebugFormat("[REGION]: Enabling logins for {0}", RegionInfo.RegionName);
1548 LoginsDisabled = false; 1542 LoginsDisabled = false;
1543 m_sceneGridService.InformNeighborsThatRegionisUp(RequestModuleInterface<INeighbourService>(), RegionInfo);
1549 } 1544 }
1550 } 1545 }
1551 } 1546 }
@@ -1830,6 +1825,8 @@ namespace OpenSim.Region.Framework.Scenes
1830 { 1825 {
1831 RegisterCommsEvents(); 1826 RegisterCommsEvents();
1832 1827
1828 m_sceneGridService.SetScene(this);
1829
1833 // These two 'commands' *must be* next to each other or sim rebooting fails. 1830 // These two 'commands' *must be* next to each other or sim rebooting fails.
1834 //m_sceneGridService.RegisterRegion(m_interregionCommsOut, RegionInfo); 1831 //m_sceneGridService.RegisterRegion(m_interregionCommsOut, RegionInfo);
1835 1832
@@ -1840,24 +1837,6 @@ namespace OpenSim.Region.Framework.Scenes
1840 throw new Exception(error); 1837 throw new Exception(error);
1841 } 1838 }
1842 1839
1843 m_sceneGridService.SetScene(this);
1844 m_sceneGridService.InformNeighborsThatRegionisUp(RequestModuleInterface<INeighbourService>(), RegionInfo);
1845
1846 //Dictionary<string, string> dGridSettings = m_sceneGridService.GetGridSettings();
1847
1848 //if (dGridSettings.ContainsKey("allow_forceful_banlines"))
1849 //{
1850 // if (dGridSettings["allow_forceful_banlines"] != "TRUE")
1851 // {
1852 // m_log.Info("[GRID]: Grid is disabling forceful parcel banlists");
1853 // EventManager.TriggerSetAllowForcefulBan(false);
1854 // }
1855 // else
1856 // {
1857 // m_log.Info("[GRID]: Grid is allowing forceful parcel banlists");
1858 // EventManager.TriggerSetAllowForcefulBan(true);
1859 // }
1860 //}
1861 } 1840 }
1862 1841
1863 /// <summary> 1842 /// <summary>
@@ -3934,6 +3913,8 @@ namespace OpenSim.Region.Framework.Scenes
3934 m_log.DebugFormat( 3913 m_log.DebugFormat(
3935 "[SCENE]: Incoming child agent update for {0} in {1}", cAgentData.AgentID, RegionInfo.RegionName); 3914 "[SCENE]: Incoming child agent update for {0} in {1}", cAgentData.AgentID, RegionInfo.RegionName);
3936 3915
3916 // XPTO: if this agent is not allowed here as root, always return false
3917
3937 // We have to wait until the viewer contacts this region after receiving EAC. 3918 // We have to wait until the viewer contacts this region after receiving EAC.
3938 // That calls AddNewClient, which finally creates the ScenePresence 3919 // That calls AddNewClient, which finally creates the ScenePresence
3939 ScenePresence childAgentUpdate = WaitGetScenePresence(cAgentData.AgentID); 3920 ScenePresence childAgentUpdate = WaitGetScenePresence(cAgentData.AgentID);
diff --git a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
index 6309cd9..a9ecde8 100644
--- a/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneCommunicationService.cs
@@ -182,24 +182,17 @@ namespace OpenSim.Region.Framework.Scenes
182 { 182 {
183 //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName); 183 //m_log.Info("[INTER]: " + debugRegionName + ": SceneCommunicationService: Sending InterRegion Notification that region is up " + region.RegionName);
184 184
185 for (int x = (int)region.RegionLocX - 1; x <= region.RegionLocX + 1; x++) 185 List<GridRegion> neighbours = m_scene.GridService.GetNeighbours(m_scene.RegionInfo.ScopeID, m_scene.RegionInfo.RegionID);
186 m_log.DebugFormat("[INTERGRID]: Informing {0} neighbours that this region is up", neighbours.Count);
187 foreach (GridRegion n in neighbours)
186 { 188 {
187 for (int y = (int)region.RegionLocY - 1; y <= region.RegionLocY + 1; y++) 189 InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync;
188 { 190 d.BeginInvoke(neighbourService, region, n.RegionHandle,
189 if (!((x == region.RegionLocX) && (y == region.RegionLocY))) // skip this region 191 InformNeighborsThatRegionisUpCompleted,
190 { 192 d);
191 ulong handle = Utils.UIntsToLong((uint)x * Constants.RegionSize, (uint)y * Constants.RegionSize);
192 InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync;
193
194 d.BeginInvoke(neighbourService, region, handle,
195 InformNeighborsThatRegionisUpCompleted,
196 d);
197 }
198 }
199 } 193 }
200 } 194 }
201 195
202
203 public delegate void SendChildAgentDataUpdateDelegate(AgentPosition cAgentData, ulong regionHandle); 196 public delegate void SendChildAgentDataUpdateDelegate(AgentPosition cAgentData, ulong regionHandle);
204 197
205 /// <summary> 198 /// <summary>
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 6d2cd88..d4fc6cd 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3390,6 +3390,7 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos);
3390 { 3390 {
3391 if (cAgent.Attachments != null) 3391 if (cAgent.Attachments != null)
3392 { 3392 {
3393 m_appearance.ClearAttachments();
3393 foreach (AttachmentData att in cAgent.Attachments) 3394 foreach (AttachmentData att in cAgent.Attachments)
3394 { 3395 {
3395 m_appearance.SetAttachment(att.AttachPoint, att.ItemID, att.AssetID); 3396 m_appearance.SetAttachment(att.AttachPoint, att.ItemID, att.AssetID);