aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorTeravus Ovares2007-12-20 06:31:03 +0000
committerTeravus Ovares2007-12-20 06:31:03 +0000
commit8aae9094128069b83fbf11cb77503e29fd381b25 (patch)
tree96515c224150272c435c6b004d0950fcd4f07509 /OpenSim/Region
parentAdded patch from Johan. First attempt to solve the LibSL.Packet GC problem. W... (diff)
downloadopensim-SC-8aae9094128069b83fbf11cb77503e29fd381b25.zip
opensim-SC-8aae9094128069b83fbf11cb77503e29fd381b25.tar.gz
opensim-SC-8aae9094128069b83fbf11cb77503e29fd381b25.tar.bz2
opensim-SC-8aae9094128069b83fbf11cb77503e29fd381b25.tar.xz
* Added a configuration parameter on the Grid Server to disallow forceful banlists.
* Added a way for Grid based configuration parameters to (generally used in overriding functionality) to get to the regions on Registration.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Communications/Local/LocalBackEndServices.cs22
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1GridServices.cs27
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs25
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs9
4 files changed, 80 insertions, 3 deletions
diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
index f57de1c..f6137f7 100644
--- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
+++ b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs
@@ -43,6 +43,8 @@ namespace OpenSim.Region.Communications.Local
43 43
44 private Dictionary<ulong, RegionInfo> m_remoteRegionInfoCache = new Dictionary<ulong, RegionInfo>(); 44 private Dictionary<ulong, RegionInfo> m_remoteRegionInfoCache = new Dictionary<ulong, RegionInfo>();
45 45
46 private Dictionary<string, string> m_queuedGridSettings = new Dictionary<string, string>();
47
46 public string _gdebugRegionName = ""; 48 public string _gdebugRegionName = "";
47 49
48 public string gdebugRegionName 50 public string gdebugRegionName
@@ -218,6 +220,26 @@ namespace OpenSim.Region.Communications.Local
218 return false; 220 return false;
219 } 221 }
220 222
223 // This function Is only here to keep this class in line with the Grid Interface.
224 // It never gets called.
225 public virtual Dictionary<string, string> GetGridSettings()
226 {
227 Dictionary<string,string> returnGridSettings = new Dictionary<string,string>();
228 lock (m_queuedGridSettings)
229 {
230 returnGridSettings = m_queuedGridSettings;
231 m_queuedGridSettings.Clear();
232 }
233
234 return returnGridSettings;
235 }
236
237 public virtual void SetForcefulBanlistsDisallowed(ulong regionHandle)
238 {
239 m_queuedGridSettings.Add("allow_forceful_banlines", "FALSE");
240
241 }
242
221 public bool TriggerRegionUp(RegionInfo region, ulong regionhandle) 243 public bool TriggerRegionUp(RegionInfo region, ulong regionhandle)
222 { 244 {
223 if (m_regionListeners.ContainsKey(regionhandle)) 245 if (m_regionListeners.ContainsKey(regionhandle))
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
index 060fe28..7adac58 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
@@ -50,6 +50,7 @@ namespace OpenSim.Region.Communications.OGS1
50 private LocalBackEndServices m_localBackend = new LocalBackEndServices(); 50 private LocalBackEndServices m_localBackend = new LocalBackEndServices();
51 private Dictionary<ulong, RegionInfo> m_remoteRegionInfoCache = new Dictionary<ulong, RegionInfo>(); 51 private Dictionary<ulong, RegionInfo> m_remoteRegionInfoCache = new Dictionary<ulong, RegionInfo>();
52 private List<SimpleRegionInfo> m_knownRegions = new List<SimpleRegionInfo>(); 52 private List<SimpleRegionInfo> m_knownRegions = new List<SimpleRegionInfo>();
53 private Dictionary<string, string> m_queuedGridSettings = new Dictionary<string, string>();
53 54
54 public BaseHttpServer httpListener; 55 public BaseHttpServer httpListener;
55 public NetworkServersInfo serversInfo; 56 public NetworkServersInfo serversInfo;
@@ -134,7 +135,15 @@ namespace OpenSim.Region.Communications.OGS1
134 else 135 else
135 { 136 {
136 m_knownRegions = RequestNeighbours(regionInfo.RegionLocX, regionInfo.RegionLocY); 137 m_knownRegions = RequestNeighbours(regionInfo.RegionLocX, regionInfo.RegionLocY);
137 138 if (GridRespData.ContainsKey("allow_forceful_banlines"))
139 {
140
141 if ((string)GridRespData["allow_forceful_banlines"] != "TRUE")
142 {
143 //m_localBackend.SetForcefulBanlistsDisallowed(regionInfo.RegionHandle);
144 m_queuedGridSettings.Add("allow_forceful_banlines", "FALSE");
145 }
146 }
138 147
139 } 148 }
140 return m_localBackend.RegisterRegion(regionInfo); 149 return m_localBackend.RegisterRegion(regionInfo);
@@ -144,7 +153,23 @@ namespace OpenSim.Region.Communications.OGS1
144 { 153 {
145 return false; 154 return false;
146 } 155 }
156 public virtual Dictionary<string, string> GetGridSettings()
157 {
158 Dictionary<string, string> returnGridSettings = new Dictionary<string, string>();
159 lock (m_queuedGridSettings)
160 {
161 foreach (string Dictkey in m_queuedGridSettings.Keys)
162 {
163 returnGridSettings.Add(Dictkey, m_queuedGridSettings[Dictkey]);
164
165 }
147 166
167
168 m_queuedGridSettings.Clear();
169 }
170
171 return returnGridSettings;
172 }
148 /// <summary> 173 /// <summary>
149 /// 174 ///
150 /// </summary> 175 /// </summary>
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 01d6c5a..6d2d31f 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -818,6 +818,12 @@ namespace OpenSim.Region.Environment.Scenes
818 // These two 'commands' *must be* next to each other or sim rebooting fails. 818 // These two 'commands' *must be* next to each other or sim rebooting fails.
819 m_sceneGridService.RegisterRegion(RegionInfo); 819 m_sceneGridService.RegisterRegion(RegionInfo);
820 m_sceneGridService.InformNeighborsThatRegionisUp(RegionInfo); 820 m_sceneGridService.InformNeighborsThatRegionisUp(RegionInfo);
821 Dictionary<string, string> dGridSettings = m_sceneGridService.GetGridSettings();
822 if (dGridSettings.ContainsKey("allow_forceful_banlines"))
823 {
824 if (dGridSettings["allow_forceful_banlines"] != "TRUE")
825 MainLog.Instance.Verbose("GRID","Grid is disabling forceful parcel banlists");
826 }
821 } 827 }
822 828
823 /// <summary> 829 /// <summary>
@@ -1295,6 +1301,7 @@ namespace OpenSim.Region.Environment.Scenes
1295 m_sceneGridService.OnCloseAgentConnection += CloseConnection; 1301 m_sceneGridService.OnCloseAgentConnection += CloseConnection;
1296 m_sceneGridService.OnRegionUp += OtherRegionUp; 1302 m_sceneGridService.OnRegionUp += OtherRegionUp;
1297 m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate; 1303 m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate;
1304
1298 1305
1299 m_sceneGridService.KillObject = SendKillObject; 1306 m_sceneGridService.KillObject = SendKillObject;
1300 } 1307 }
@@ -1303,15 +1310,29 @@ namespace OpenSim.Region.Environment.Scenes
1303 /// 1310 ///
1304 /// </summary> 1311 /// </summary>
1305 public void UnRegisterReginWithComms() 1312 public void UnRegisterReginWithComms()
1306 { 1313 {
1314
1307 m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate; 1315 m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate;
1308 m_sceneGridService.OnRegionUp -= OtherRegionUp; 1316 m_sceneGridService.OnRegionUp -= OtherRegionUp;
1309 m_sceneGridService.OnExpectUser -= NewUserConnection; 1317 m_sceneGridService.OnExpectUser -= NewUserConnection;
1310 m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; 1318 m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing;
1311 m_sceneGridService.OnCloseAgentConnection -= CloseConnection; 1319 m_sceneGridService.OnCloseAgentConnection -= CloseConnection;
1312 1320
1313 m_sceneGridService.Close(); 1321 m_sceneGridService.Close();
1314 } 1322 }
1323 public void NewIncomingGridSetting(ulong regionHandle, string key, string gvalue)
1324 {
1325 if (key == "allow_forceful_banlines")
1326 {
1327 if (gvalue == "FALSE")
1328 {
1329 MainLog.Instance.Verbose("INTERGRID", "Grid is disallowing forcefull banlines");
1330 //Ming, Do stuff here
1331 }
1332 }
1333
1334
1335 }
1315 1336
1316 /// <summary> 1337 /// <summary>
1317 /// 1338 ///
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
index c72e344..b184af2 100644
--- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs
@@ -52,6 +52,7 @@ namespace OpenSim.Region.Environment.Scenes
52 public event PrimCrossing OnPrimCrossingIntoRegion; 52 public event PrimCrossing OnPrimCrossingIntoRegion;
53 public event RegionUp OnRegionUp; 53 public event RegionUp OnRegionUp;
54 public event ChildAgentUpdate OnChildAgentUpdate; 54 public event ChildAgentUpdate OnChildAgentUpdate;
55
55 56
56 public KillObjectDelegate KillObject; 57 public KillObjectDelegate KillObject;
57 public string _debugRegionName = ""; 58 public string _debugRegionName = "";
@@ -101,6 +102,7 @@ namespace OpenSim.Region.Environment.Scenes
101 { 102 {
102 if (regionCommsHost != null) 103 if (regionCommsHost != null)
103 { 104 {
105
104 regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate; 106 regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate;
105 regionCommsHost.OnRegionUp -= newRegionUp; 107 regionCommsHost.OnRegionUp -= newRegionUp;
106 regionCommsHost.OnExpectUser -= NewUserConnection; 108 regionCommsHost.OnExpectUser -= NewUserConnection;
@@ -168,6 +170,7 @@ namespace OpenSim.Region.Environment.Scenes
168 OnCloseAgentConnection(regionHandle, agentID); 170 OnCloseAgentConnection(regionHandle, agentID);
169 } 171 }
170 } 172 }
173
171 #endregion 174 #endregion
172 175
173 #region Inform Client of Neighbours 176 #region Inform Client of Neighbours
@@ -466,5 +469,11 @@ namespace OpenSim.Region.Environment.Scenes
466 presence.RemoveNeighbourRegion(regionHandle); 469 presence.RemoveNeighbourRegion(regionHandle);
467 } 470 }
468 } 471 }
472
473 public Dictionary<string, string> GetGridSettings()
474 {
475 return m_commsProvider.GridService.GetGridSettings();
476 }
477
469 } 478 }
470} 479}