diff options
41 files changed, 842 insertions, 806 deletions
diff --git a/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs index dd3f4b3..7e498d6 100644 --- a/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs +++ b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs | |||
@@ -68,7 +68,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
68 | 68 | ||
69 | for (int i = 0; i < regionsToLoad.Length; i++) | 69 | for (int i = 0; i < regionsToLoad.Length; i++) |
70 | { | 70 | { |
71 | m_log.Debug("[LOADREGIONS]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " + Thread.CurrentThread.ManagedThreadId.ToString() + | 71 | m_log.Debug("[LOADREGIONS]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " + Thread.CurrentThread.ManagedThreadId + |
72 | ")"); | 72 | ")"); |
73 | openSim.CreateRegion(regionsToLoad[i], true); | 73 | openSim.CreateRegion(regionsToLoad[i], true); |
74 | } | 74 | } |
@@ -106,7 +106,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
106 | if (regionhandle == regionsToLoad[i].RegionHandle) | 106 | if (regionhandle == regionsToLoad[i].RegionHandle) |
107 | { | 107 | { |
108 | m_log.Debug("[LOADREGIONS]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " + | 108 | m_log.Debug("[LOADREGIONS]: Creating Region: " + regionsToLoad[i].RegionName + " (ThreadID: " + |
109 | Thread.CurrentThread.ManagedThreadId.ToString() + ")"); | 109 | Thread.CurrentThread.ManagedThreadId + ")"); |
110 | openSim.CreateRegion(regionsToLoad[i], true); | 110 | openSim.CreateRegion(regionsToLoad[i], true); |
111 | } | 111 | } |
112 | } | 112 | } |
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index e540e4d..b7067e7 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -54,11 +54,13 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
54 | private BaseHttpServer m_httpd; | 54 | private BaseHttpServer m_httpd; |
55 | private string requiredPassword = String.Empty; | 55 | private string requiredPassword = String.Empty; |
56 | 56 | ||
57 | #region IApplicationPlugin Members | ||
58 | |||
57 | public void Initialise(OpenSimMain openSim) | 59 | public void Initialise(OpenSimMain openSim) |
58 | { | 60 | { |
59 | try | 61 | try |
60 | { | 62 | { |
61 | if (openSim.ConfigSource.Configs["RemoteAdmin"] != null && | 63 | if (openSim.ConfigSource.Configs["RemoteAdmin"] != null && |
62 | openSim.ConfigSource.Configs["RemoteAdmin"].GetBoolean("enabled", false)) | 64 | openSim.ConfigSource.Configs["RemoteAdmin"].GetBoolean("enabled", false)) |
63 | { | 65 | { |
64 | m_log.Info("[RADMIN]: Remote Admin Plugin Enabled"); | 66 | m_log.Info("[RADMIN]: Remote Admin Plugin Enabled"); |
@@ -82,6 +84,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
82 | } | 84 | } |
83 | } | 85 | } |
84 | 86 | ||
87 | public void Close() | ||
88 | { | ||
89 | } | ||
90 | |||
91 | #endregion | ||
92 | |||
85 | public XmlRpcResponse XmlRpcRestartMethod(XmlRpcRequest request) | 93 | public XmlRpcResponse XmlRpcRestartMethod(XmlRpcRequest request) |
86 | { | 94 | { |
87 | XmlRpcResponse response = new XmlRpcResponse(); | 95 | XmlRpcResponse response = new XmlRpcResponse(); |
@@ -90,13 +98,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
90 | Hashtable responseData = new Hashtable(); | 98 | Hashtable responseData = new Hashtable(); |
91 | 99 | ||
92 | m_log.Info("[RADMIN]: Request to restart Region."); | 100 | m_log.Info("[RADMIN]: Request to restart Region."); |
93 | try { | 101 | try |
94 | checkStringParameters(request, new string[] { "password", "regionID" }); | 102 | { |
103 | checkStringParameters(request, new[] {"password", "regionID"}); | ||
95 | 104 | ||
96 | if (requiredPassword != String.Empty && | 105 | if (requiredPassword != String.Empty && |
97 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) | 106 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) |
98 | throw new Exception("wrong password"); | 107 | throw new Exception("wrong password"); |
99 | 108 | ||
100 | LLUUID regionID = new LLUUID((string) requestData["regionID"]); | 109 | LLUUID regionID = new LLUUID((string) requestData["regionID"]); |
101 | 110 | ||
102 | responseData["accepted"] = "true"; | 111 | responseData["accepted"] = "true"; |
@@ -106,11 +115,11 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
106 | 115 | ||
107 | if (!m_app.SceneManager.TryGetScene(regionID, out rebootedScene)) | 116 | if (!m_app.SceneManager.TryGetScene(regionID, out rebootedScene)) |
108 | throw new Exception("region not found"); | 117 | throw new Exception("region not found"); |
109 | 118 | ||
110 | responseData["rebooting"] = "true"; | 119 | responseData["rebooting"] = "true"; |
111 | rebootedScene.Restart(30); | 120 | rebootedScene.Restart(30); |
112 | } | 121 | } |
113 | catch(Exception e) | 122 | catch (Exception e) |
114 | { | 123 | { |
115 | m_log.ErrorFormat("[RADMIN]: Restart region: failed: {0}", e.Message); | 124 | m_log.ErrorFormat("[RADMIN]: Restart region: failed: {0}", e.Message); |
116 | m_log.DebugFormat("[RADMIN]: Restart region: failed: {0}", e.ToString()); | 125 | m_log.DebugFormat("[RADMIN]: Restart region: failed: {0}", e.ToString()); |
@@ -130,13 +139,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
130 | Hashtable requestData = (Hashtable) request.Params[0]; | 139 | Hashtable requestData = (Hashtable) request.Params[0]; |
131 | Hashtable responseData = new Hashtable(); | 140 | Hashtable responseData = new Hashtable(); |
132 | 141 | ||
133 | try { | 142 | try |
134 | checkStringParameters(request, new string[] { "password", "message" }); | 143 | { |
144 | checkStringParameters(request, new[] {"password", "message"}); | ||
135 | 145 | ||
136 | if (requiredPassword != String.Empty && | 146 | if (requiredPassword != String.Empty && |
137 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) | 147 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) |
138 | throw new Exception("wrong password"); | 148 | throw new Exception("wrong password"); |
139 | 149 | ||
140 | string message = (string) requestData["message"]; | 150 | string message = (string) requestData["message"]; |
141 | m_log.InfoFormat("[RADMIN]: Broadcasting: {0}", message); | 151 | m_log.InfoFormat("[RADMIN]: Broadcasting: {0}", message); |
142 | 152 | ||
@@ -145,7 +155,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
145 | 155 | ||
146 | m_app.SceneManager.SendGeneralMessage(message); | 156 | m_app.SceneManager.SendGeneralMessage(message); |
147 | } | 157 | } |
148 | catch(Exception e) | 158 | catch (Exception e) |
149 | { | 159 | { |
150 | m_log.ErrorFormat("[RADMIN]: Broadcasting: failed: {0}", e.Message); | 160 | m_log.ErrorFormat("[RADMIN]: Broadcasting: failed: {0}", e.Message); |
151 | m_log.DebugFormat("[RADMIN]: Broadcasting: failed: {0}", e.ToString()); | 161 | m_log.DebugFormat("[RADMIN]: Broadcasting: failed: {0}", e.ToString()); |
@@ -162,24 +172,25 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
162 | public XmlRpcResponse XmlRpcLoadHeightmapMethod(XmlRpcRequest request) | 172 | public XmlRpcResponse XmlRpcLoadHeightmapMethod(XmlRpcRequest request) |
163 | { | 173 | { |
164 | XmlRpcResponse response = new XmlRpcResponse(); | 174 | XmlRpcResponse response = new XmlRpcResponse(); |
165 | Hashtable requestData = (Hashtable)request.Params[0]; | 175 | Hashtable requestData = (Hashtable) request.Params[0]; |
166 | 176 | ||
167 | m_log.DebugFormat("[RADMIN]: Load Terrain: XmlRpc {0}", request.ToString()); | 177 | m_log.DebugFormat("[RADMIN]: Load Terrain: XmlRpc {0}", request.ToString()); |
168 | foreach (string k in requestData.Keys) | 178 | foreach (string k in requestData.Keys) |
169 | { | 179 | { |
170 | m_log.DebugFormat("[RADMIN]: Load Terrain: XmlRpc {0}: >{1}< {2}", | 180 | m_log.DebugFormat("[RADMIN]: Load Terrain: XmlRpc {0}: >{1}< {2}", |
171 | k, (string)requestData[k], ((string)requestData[k]).Length); | 181 | k, requestData[k], ((string) requestData[k]).Length); |
172 | } | 182 | } |
173 | 183 | ||
174 | Hashtable responseData = new Hashtable(); | 184 | Hashtable responseData = new Hashtable(); |
175 | try { | 185 | try |
176 | checkStringParameters(request, new string[] { "password", "filename", "regionid"}); | 186 | { |
187 | checkStringParameters(request, new[] {"password", "filename", "regionid"}); | ||
177 | 188 | ||
178 | if (requiredPassword != String.Empty && | 189 | if (requiredPassword != String.Empty && |
179 | (!requestData.Contains("password") || (string)requestData["password"] != requiredPassword)) | 190 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) |
180 | throw new Exception("wrong password"); | 191 | throw new Exception("wrong password"); |
181 | 192 | ||
182 | string file = (string)requestData["filename"]; | 193 | string file = (string) requestData["filename"]; |
183 | LLUUID regionID = (string) requestData["regionid"]; | 194 | LLUUID regionID = (string) requestData["regionid"]; |
184 | m_log.InfoFormat("[RADMIN]: Terrain Loading: {0}", file); | 195 | m_log.InfoFormat("[RADMIN]: Terrain Loading: {0}", file); |
185 | 196 | ||
@@ -198,7 +209,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
198 | 209 | ||
199 | response.Value = responseData; | 210 | response.Value = responseData; |
200 | } | 211 | } |
201 | catch (Exception e) | 212 | catch (Exception e) |
202 | { | 213 | { |
203 | m_log.ErrorFormat("[RADMIN] Terrain Loading: failed: {0}", e.Message); | 214 | m_log.ErrorFormat("[RADMIN] Terrain Loading: failed: {0}", e.Message); |
204 | m_log.DebugFormat("[RADMIN] Terrain Loading: failed: {0}", e.ToString()); | 215 | m_log.DebugFormat("[RADMIN] Terrain Loading: failed: {0}", e.ToString()); |
@@ -217,7 +228,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
217 | Hashtable requestData = (Hashtable) request.Params[0]; | 228 | Hashtable requestData = (Hashtable) request.Params[0]; |
218 | Hashtable responseData = new Hashtable(); | 229 | Hashtable responseData = new Hashtable(); |
219 | 230 | ||
220 | try { | 231 | try |
232 | { | ||
221 | if (requiredPassword != String.Empty && | 233 | if (requiredPassword != String.Empty && |
222 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) | 234 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) |
223 | throw new Exception("wrong password"); | 235 | throw new Exception("wrong password"); |
@@ -227,14 +239,14 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
227 | 239 | ||
228 | int timeout = 2000; | 240 | int timeout = 2000; |
229 | 241 | ||
230 | if (requestData.ContainsKey("shutdown") && | 242 | if (requestData.ContainsKey("shutdown") && |
231 | ((string) requestData["shutdown"] == "delayed") && | 243 | ((string) requestData["shutdown"] == "delayed") && |
232 | requestData.ContainsKey("milliseconds")) | 244 | requestData.ContainsKey("milliseconds")) |
233 | { | 245 | { |
234 | timeout = (Int32) requestData["milliseconds"]; | 246 | timeout = (Int32) requestData["milliseconds"]; |
235 | m_app.SceneManager.SendGeneralMessage("Region is going down in " + ((int) (timeout/1000)).ToString() + | 247 | m_app.SceneManager.SendGeneralMessage("Region is going down in " + ((timeout / 1000)) + |
236 | " second(s). Please save what you are doing and log out."); | 248 | " second(s). Please save what you are doing and log out."); |
237 | } | 249 | } |
238 | else | 250 | else |
239 | { | 251 | { |
240 | m_app.SceneManager.SendGeneralMessage("Region is going down now."); | 252 | m_app.SceneManager.SendGeneralMessage("Region is going down now."); |
@@ -243,12 +255,12 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
243 | // Perform shutdown | 255 | // Perform shutdown |
244 | Timer shutdownTimer = new Timer(timeout); // Wait before firing | 256 | Timer shutdownTimer = new Timer(timeout); // Wait before firing |
245 | shutdownTimer.AutoReset = false; | 257 | shutdownTimer.AutoReset = false; |
246 | shutdownTimer.Elapsed += new ElapsedEventHandler(shutdownTimer_Elapsed); | 258 | shutdownTimer.Elapsed += shutdownTimer_Elapsed; |
247 | shutdownTimer.Start(); | 259 | shutdownTimer.Start(); |
248 | 260 | ||
249 | responseData["success"] = "true"; | 261 | responseData["success"] = "true"; |
250 | } | 262 | } |
251 | catch (Exception e) | 263 | catch (Exception e) |
252 | { | 264 | { |
253 | m_log.ErrorFormat("[RADMIN] Shutdown: failed: {0}", e.Message); | 265 | m_log.ErrorFormat("[RADMIN] Shutdown: failed: {0}", e.Message); |
254 | m_log.DebugFormat("[RADMIN] Shutdown: failed: {0}", e.ToString()); | 266 | m_log.DebugFormat("[RADMIN] Shutdown: failed: {0}", e.ToString()); |
@@ -272,9 +284,9 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
272 | Hashtable requestData = (Hashtable) request.Params[0]; | 284 | Hashtable requestData = (Hashtable) request.Params[0]; |
273 | foreach (string p in param) | 285 | foreach (string p in param) |
274 | { | 286 | { |
275 | if (!requestData.Contains(p)) | 287 | if (!requestData.Contains(p)) |
276 | throw new Exception(String.Format("missing string parameter {0}", p)); | 288 | throw new Exception(String.Format("missing string parameter {0}", p)); |
277 | if (String.IsNullOrEmpty((string)requestData[p])) | 289 | if (String.IsNullOrEmpty((string) requestData[p])) |
278 | throw new Exception(String.Format("parameter {0} is empty", p)); | 290 | throw new Exception(String.Format("parameter {0} is empty", p)); |
279 | } | 291 | } |
280 | } | 292 | } |
@@ -284,7 +296,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
284 | Hashtable requestData = (Hashtable) request.Params[0]; | 296 | Hashtable requestData = (Hashtable) request.Params[0]; |
285 | foreach (string p in param) | 297 | foreach (string p in param) |
286 | { | 298 | { |
287 | if (!requestData.Contains(p)) | 299 | if (!requestData.Contains(p)) |
288 | throw new Exception(String.Format("missing integer parameter {0}", p)); | 300 | throw new Exception(String.Format("missing integer parameter {0}", p)); |
289 | } | 301 | } |
290 | } | 302 | } |
@@ -345,31 +357,35 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
345 | Hashtable requestData = (Hashtable) request.Params[0]; | 357 | Hashtable requestData = (Hashtable) request.Params[0]; |
346 | Hashtable responseData = new Hashtable(); | 358 | Hashtable responseData = new Hashtable(); |
347 | 359 | ||
348 | try { | 360 | try |
349 | checkStringParameters(request, new string[] { "password", | 361 | { |
350 | "region_name", | 362 | checkStringParameters(request, new[] |
351 | "region_master_first", "region_master_last", | 363 | { |
352 | "region_master_password", | 364 | "password", |
353 | "listen_ip", "external_address"}); | 365 | "region_name", |
354 | checkIntegerParams(request, new string[] { "region_x", "region_y", "listen_port"}); | 366 | "region_master_first", "region_master_last", |
367 | "region_master_password", | ||
368 | "listen_ip", "external_address" | ||
369 | }); | ||
370 | checkIntegerParams(request, new[] {"region_x", "region_y", "listen_port"}); | ||
355 | 371 | ||
356 | // check password | 372 | // check password |
357 | if (!String.IsNullOrEmpty(requiredPassword) && | 373 | if (!String.IsNullOrEmpty(requiredPassword) && |
358 | (string)requestData["password"] != requiredPassword) throw new Exception("wrong password"); | 374 | (string) requestData["password"] != requiredPassword) throw new Exception("wrong password"); |
359 | 375 | ||
360 | // extract or generate region ID now | 376 | // extract or generate region ID now |
361 | Scene scene = null; | 377 | Scene scene = null; |
362 | LLUUID regionID = LLUUID.Zero; | 378 | LLUUID regionID = LLUUID.Zero; |
363 | if (requestData.ContainsKey("region_id") && | 379 | if (requestData.ContainsKey("region_id") && |
364 | !String.IsNullOrEmpty((string)requestData["region_id"])) | 380 | !String.IsNullOrEmpty((string) requestData["region_id"])) |
365 | { | 381 | { |
366 | regionID = (string) requestData["region_id"]; | 382 | regionID = (string) requestData["region_id"]; |
367 | if (m_app.SceneManager.TryGetScene(regionID, out scene)) | 383 | if (m_app.SceneManager.TryGetScene(regionID, out scene)) |
368 | throw new Exception(String.Format("region UUID already in use by region {0}, UUID {1}, <{2},{3}>", | 384 | throw new Exception(String.Format("region UUID already in use by region {0}, UUID {1}, <{2},{3}>", |
369 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, | 385 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, |
370 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); | 386 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); |
371 | } | 387 | } |
372 | else | 388 | else |
373 | { | 389 | { |
374 | regionID = LLUUID.Random(); | 390 | regionID = LLUUID.Random(); |
375 | m_log.DebugFormat("[RADMIN] CreateRegion: new region UUID {0}", regionID); | 391 | m_log.DebugFormat("[RADMIN] CreateRegion: new region UUID {0}", regionID); |
@@ -385,7 +401,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
385 | 401 | ||
386 | // check for collisions: region name, region UUID, | 402 | // check for collisions: region name, region UUID, |
387 | // region location | 403 | // region location |
388 | if (m_app.SceneManager.TryGetScene(region.RegionName, out scene)) | 404 | if (m_app.SceneManager.TryGetScene(region.RegionName, out scene)) |
389 | throw new Exception(String.Format("region name already in use by region {0}, UUID {1}, <{2},{3}>", | 405 | throw new Exception(String.Format("region name already in use by region {0}, UUID {1}, <{2},{3}>", |
390 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, | 406 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, |
391 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); | 407 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); |
@@ -395,46 +411,46 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
395 | region.RegionLocX, region.RegionLocY, | 411 | region.RegionLocX, region.RegionLocY, |
396 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, | 412 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, |
397 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); | 413 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); |
398 | 414 | ||
399 | // Security risk [and apparently not used] | 415 | // Security risk [and apparently not used] |
400 | // if (requestData.ContainsKey("datastore")) | 416 | // if (requestData.ContainsKey("datastore")) |
401 | // region.DataStore = (string) requestData["datastore"]; | 417 | // region.DataStore = (string) requestData["datastore"]; |
402 | 418 | ||
403 | region.InternalEndPoint = | 419 | region.InternalEndPoint = |
404 | new IPEndPoint(IPAddress.Parse((string) requestData["listen_ip"]), 0); | 420 | new IPEndPoint(IPAddress.Parse((string) requestData["listen_ip"]), 0); |
405 | 421 | ||
406 | region.InternalEndPoint.Port = (Int32) requestData["listen_port"]; | 422 | region.InternalEndPoint.Port = (Int32) requestData["listen_port"]; |
407 | if (0 == region.InternalEndPoint.Port) throw new Exception("listen_port is 0"); | 423 | if (0 == region.InternalEndPoint.Port) throw new Exception("listen_port is 0"); |
408 | if (m_app.SceneManager.TryGetScene(region.InternalEndPoint, out scene)) | 424 | if (m_app.SceneManager.TryGetScene(region.InternalEndPoint, out scene)) |
409 | throw new Exception(String.Format("region internal IP {0} and port {1} already in use by region {2}, UUID {3}, <{4},{5}>", | 425 | throw new Exception(String.Format("region internal IP {0} and port {1} already in use by region {2}, UUID {3}, <{4},{5}>", |
410 | region.InternalEndPoint.Address, | 426 | region.InternalEndPoint.Address, |
411 | region.InternalEndPoint.Port, | 427 | region.InternalEndPoint.Port, |
412 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, | 428 | scene.RegionInfo.RegionName, scene.RegionInfo.RegionID, |
413 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); | 429 | scene.RegionInfo.RegionLocX, scene.RegionInfo.RegionLocY)); |
414 | 430 | ||
415 | 431 | ||
416 | region.ExternalHostName = (string) requestData["external_address"]; | 432 | region.ExternalHostName = (string) requestData["external_address"]; |
417 | 433 | ||
418 | region.MasterAvatarFirstName = (string) requestData["region_master_first"]; | 434 | region.MasterAvatarFirstName = (string) requestData["region_master_first"]; |
419 | region.MasterAvatarLastName = (string) requestData["region_master_last"]; | 435 | region.MasterAvatarLastName = (string) requestData["region_master_last"]; |
420 | region.MasterAvatarSandboxPassword = (string) requestData["region_master_password"]; | 436 | region.MasterAvatarSandboxPassword = (string) requestData["region_master_password"]; |
421 | 437 | ||
422 | bool persist = Convert.ToBoolean((string)requestData["persist"]); | 438 | bool persist = Convert.ToBoolean((string) requestData["persist"]); |
423 | if (persist) | 439 | if (persist) |
424 | { | 440 | { |
425 | string regionConfigPath = Path.Combine(Path.Combine(Util.configDir(), "Regions"), | 441 | string regionConfigPath = Path.Combine(Path.Combine(Util.configDir(), "Regions"), |
426 | String.Format("{0}x{1}-{2}.xml", | 442 | String.Format("{0}x{1}-{2}.xml", |
427 | region.RegionLocX.ToString(), | 443 | region.RegionLocX, |
428 | region.RegionLocY.ToString(), | 444 | region.RegionLocY, |
429 | regionID.ToString())); | 445 | regionID)); |
430 | m_log.DebugFormat("[RADMIN] CreateRegion: persisting region {0} to {1}", | 446 | m_log.DebugFormat("[RADMIN] CreateRegion: persisting region {0} to {1}", |
431 | region.RegionID, regionConfigPath); | 447 | region.RegionID, regionConfigPath); |
432 | region.SaveRegionToFile("dynamic region", regionConfigPath); | 448 | region.SaveRegionToFile("dynamic region", regionConfigPath); |
433 | } | 449 | } |
434 | 450 | ||
435 | m_app.CreateRegion(region); | 451 | m_app.CreateRegion(region); |
436 | 452 | ||
437 | responseData["success"] = "true"; | 453 | responseData["success"] = "true"; |
438 | responseData["region_name"] = region.RegionName; | 454 | responseData["region_name"] = region.RegionName; |
439 | responseData["region_uuid"] = region.RegionID.ToString(); | 455 | responseData["region_uuid"] = region.RegionID.ToString(); |
440 | 456 | ||
@@ -497,48 +513,52 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
497 | Hashtable requestData = (Hashtable) request.Params[0]; | 513 | Hashtable requestData = (Hashtable) request.Params[0]; |
498 | Hashtable responseData = new Hashtable(); | 514 | Hashtable responseData = new Hashtable(); |
499 | 515 | ||
500 | try | 516 | try |
501 | { | 517 | { |
502 | // check completeness | 518 | // check completeness |
503 | checkStringParameters(request, new string[] { "password", "user_firstname", | 519 | checkStringParameters(request, new[] |
504 | "user_lastname", "user_password" }); | 520 | { |
505 | checkIntegerParams(request, new string[] { "start_region_x", "start_region_y" }); | 521 | "password", "user_firstname", |
522 | "user_lastname", "user_password" | ||
523 | }); | ||
524 | checkIntegerParams(request, new[] {"start_region_x", "start_region_y"}); | ||
506 | 525 | ||
507 | // check password | 526 | // check password |
508 | if (!String.IsNullOrEmpty(requiredPassword) && | 527 | if (!String.IsNullOrEmpty(requiredPassword) && |
509 | (string)requestData["password"] != requiredPassword) throw new Exception("wrong password"); | 528 | (string) requestData["password"] != requiredPassword) throw new Exception("wrong password"); |
510 | 529 | ||
511 | // do the job | 530 | // do the job |
512 | string firstname = (string) requestData["user_firstname"]; | 531 | string firstname = (string) requestData["user_firstname"]; |
513 | string lastname = (string) requestData["user_lastname"]; | 532 | string lastname = (string) requestData["user_lastname"]; |
514 | string passwd = (string) requestData["user_password"]; | 533 | string passwd = (string) requestData["user_password"]; |
515 | uint regX = Convert.ToUInt32((Int32)requestData["start_region_x"]); | 534 | uint regX = Convert.ToUInt32((Int32) requestData["start_region_x"]); |
516 | uint regY = Convert.ToUInt32((Int32)requestData["start_region_y"]); | 535 | uint regY = Convert.ToUInt32((Int32) requestData["start_region_y"]); |
517 | 536 | ||
518 | UserProfileData userProfile = m_app.CommunicationsManager.UserService.GetUserProfile(firstname, lastname); | 537 | UserProfileData userProfile = m_app.CommunicationsManager.UserService.GetUserProfile(firstname, lastname); |
519 | if (null != userProfile) | 538 | if (null != userProfile) |
520 | throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname)); | 539 | throw new Exception(String.Format("avatar {0} {1} already exists", firstname, lastname)); |
521 | 540 | ||
522 | LLUUID userID = m_app.CreateUser(firstname, lastname, passwd, regX, regY); | 541 | LLUUID userID = m_app.CreateUser(firstname, lastname, passwd, regX, regY); |
523 | 542 | ||
524 | if (userID == LLUUID.Zero) throw new Exception(String.Format("failed to create new user {0} {1}", | 543 | if (userID == LLUUID.Zero) |
525 | firstname, lastname)); | 544 | throw new Exception(String.Format("failed to create new user {0} {1}", |
526 | 545 | firstname, lastname)); | |
527 | responseData["success"] = "true"; | 546 | |
547 | responseData["success"] = "true"; | ||
528 | responseData["avatar_uuid"] = userID.ToString(); | 548 | responseData["avatar_uuid"] = userID.ToString(); |
529 | 549 | ||
530 | response.Value = responseData; | 550 | response.Value = responseData; |
531 | 551 | ||
532 | m_log.InfoFormat("[RADMIN]: CreateUser: User {0} {1} created, UUID {2}", firstname, lastname, userID); | 552 | m_log.InfoFormat("[RADMIN]: CreateUser: User {0} {1} created, UUID {2}", firstname, lastname, userID); |
533 | } | 553 | } |
534 | catch (Exception e) | 554 | catch (Exception e) |
535 | { | 555 | { |
536 | m_log.ErrorFormat("[RADMIN] CreateUser: failed: {0}", e.Message); | 556 | m_log.ErrorFormat("[RADMIN] CreateUser: failed: {0}", e.Message); |
537 | m_log.DebugFormat("[RADMIN] CreateUser: failed: {0}", e.ToString()); | 557 | m_log.DebugFormat("[RADMIN] CreateUser: failed: {0}", e.ToString()); |
538 | 558 | ||
539 | responseData["success"] = "false"; | 559 | responseData["success"] = "false"; |
540 | responseData["avatar_uuid"] = LLUUID.Zero.ToString(); | 560 | responseData["avatar_uuid"] = LLUUID.Zero.ToString(); |
541 | responseData["error"] = e.Message; | 561 | responseData["error"] = e.Message; |
542 | 562 | ||
543 | response.Value = responseData; | 563 | response.Value = responseData; |
544 | } | 564 | } |
@@ -553,33 +573,33 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
553 | Hashtable requestData = (Hashtable) request.Params[0]; | 573 | Hashtable requestData = (Hashtable) request.Params[0]; |
554 | Hashtable responseData = new Hashtable(); | 574 | Hashtable responseData = new Hashtable(); |
555 | 575 | ||
556 | try | 576 | try |
557 | { | 577 | { |
558 | // check completeness | 578 | // check completeness |
559 | foreach (string p in new string[] { "password", "filename" }) | 579 | foreach (string p in new[] {"password", "filename"}) |
560 | { | 580 | { |
561 | if (!requestData.Contains(p)) | 581 | if (!requestData.Contains(p)) |
562 | throw new Exception(String.Format("missing parameter {0}", p)); | 582 | throw new Exception(String.Format("missing parameter {0}", p)); |
563 | if (String.IsNullOrEmpty((string)requestData[p])) | 583 | if (String.IsNullOrEmpty((string) requestData[p])) |
564 | throw new Exception(String.Format("parameter {0} is empty")); | 584 | throw new Exception(String.Format("parameter {0} is empty")); |
565 | } | 585 | } |
566 | 586 | ||
567 | // check password | 587 | // check password |
568 | if (!String.IsNullOrEmpty(requiredPassword) && | 588 | if (!String.IsNullOrEmpty(requiredPassword) && |
569 | (string)requestData["password"] != requiredPassword) throw new Exception("wrong password"); | 589 | (string) requestData["password"] != requiredPassword) throw new Exception("wrong password"); |
570 | 590 | ||
571 | string filename = (string)requestData["filename"]; | 591 | string filename = (string) requestData["filename"]; |
572 | if (requestData.Contains("region_uuid")) | 592 | if (requestData.Contains("region_uuid")) |
573 | { | 593 | { |
574 | LLUUID region_uuid = (string)requestData["region_uuid"]; | 594 | LLUUID region_uuid = (string) requestData["region_uuid"]; |
575 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) | 595 | if (!m_app.SceneManager.TrySetCurrentScene(region_uuid)) |
576 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid.ToString())); | 596 | throw new Exception(String.Format("failed to switch to region {0}", region_uuid)); |
577 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); | 597 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_uuid.ToString()); |
578 | } | 598 | } |
579 | else if (requestData.Contains("region_name")) | 599 | else if (requestData.Contains("region_name")) |
580 | { | 600 | { |
581 | string region_name = (string)requestData["region_name"]; | 601 | string region_name = (string) requestData["region_name"]; |
582 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) | 602 | if (!m_app.SceneManager.TrySetCurrentScene(region_name)) |
583 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); | 603 | throw new Exception(String.Format("failed to switch to region {0}", region_name)); |
584 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); | 604 | m_log.InfoFormat("[RADMIN] Switched to region {0}", region_name); |
585 | } | 605 | } |
@@ -588,27 +608,23 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
588 | responseData["switched"] = "true"; | 608 | responseData["switched"] = "true"; |
589 | 609 | ||
590 | m_app.SceneManager.LoadCurrentSceneFromXml(filename, true, new LLVector3(0, 0, 0)); | 610 | m_app.SceneManager.LoadCurrentSceneFromXml(filename, true, new LLVector3(0, 0, 0)); |
591 | responseData["loaded"] = "true"; | 611 | responseData["loaded"] = "true"; |
592 | 612 | ||
593 | response.Value = responseData; | 613 | response.Value = responseData; |
594 | } | 614 | } |
595 | catch (Exception e) | 615 | catch (Exception e) |
596 | { | 616 | { |
597 | m_log.InfoFormat("[RADMIN] LoadXml: {0}", e.Message); | 617 | m_log.InfoFormat("[RADMIN] LoadXml: {0}", e.Message); |
598 | m_log.DebugFormat("[RADMIN] LoadXml: {0}", e.ToString()); | 618 | m_log.DebugFormat("[RADMIN] LoadXml: {0}", e.ToString()); |
599 | 619 | ||
600 | responseData["loaded"] = "false"; | 620 | responseData["loaded"] = "false"; |
601 | responseData["switched"] = "false"; | 621 | responseData["switched"] = "false"; |
602 | responseData["error"] = e.Message; | 622 | responseData["error"] = e.Message; |
603 | 623 | ||
604 | response.Value = responseData; | 624 | response.Value = responseData; |
605 | } | 625 | } |
606 | |||
607 | return response; | ||
608 | } | ||
609 | 626 | ||
610 | public void Close() | 627 | return response; |
611 | { | ||
612 | } | 628 | } |
613 | } | 629 | } |
614 | } \ No newline at end of file | 630 | } \ No newline at end of file |
diff --git a/OpenSim/Data/MSSQL/MSSQLAssetData.cs b/OpenSim/Data/MSSQL/MSSQLAssetData.cs index 5ae60a1..5b4fa4e 100644 --- a/OpenSim/Data/MSSQL/MSSQLAssetData.cs +++ b/OpenSim/Data/MSSQL/MSSQLAssetData.cs | |||
@@ -70,7 +70,7 @@ namespace OpenSim.Data.MSSQL | |||
70 | 70 | ||
71 | override public AssetBase FetchAsset(LLUUID assetID) | 71 | override public AssetBase FetchAsset(LLUUID assetID) |
72 | { | 72 | { |
73 | AssetBase asset = null; | 73 | AssetBase asset; |
74 | 74 | ||
75 | Dictionary<string, string> param = new Dictionary<string, string>(); | 75 | Dictionary<string, string> param = new Dictionary<string, string>(); |
76 | param["id"] = assetID.ToString(); | 76 | param["id"] = assetID.ToString(); |
diff --git a/OpenSim/Grid/AssetServer/Main.cs b/OpenSim/Grid/AssetServer/Main.cs index 26f4bc8..c26c506 100644 --- a/OpenSim/Grid/AssetServer/Main.cs +++ b/OpenSim/Grid/AssetServer/Main.cs | |||
@@ -46,14 +46,48 @@ namespace OpenSim.Grid.AssetServer | |||
46 | { | 46 | { |
47 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 47 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
48 | 48 | ||
49 | public AssetConfig m_config; | 49 | public static OpenAsset_Main assetserver; |
50 | 50 | ||
51 | public static OpenAsset_Main assetserver; | ||
52 | |||
53 | // Temporarily hardcoded - should be a plugin | 51 | // Temporarily hardcoded - should be a plugin |
54 | protected IAssetLoader assetLoader = new AssetLoaderFileSystem(); | 52 | protected IAssetLoader assetLoader = new AssetLoaderFileSystem(); |
55 | 53 | ||
56 | private IAssetProvider m_assetProvider; | 54 | private IAssetProvider m_assetProvider; |
55 | public AssetConfig m_config; | ||
56 | |||
57 | public OpenAsset_Main() | ||
58 | { | ||
59 | m_console = new ConsoleBase("OpenAsset", this); | ||
60 | |||
61 | MainConsole.Instance = m_console; | ||
62 | } | ||
63 | |||
64 | #region conscmd_callback Members | ||
65 | |||
66 | public override void RunCmd(string cmd, string[] cmdparams) | ||
67 | { | ||
68 | base.RunCmd(cmd, cmdparams); | ||
69 | |||
70 | switch (cmd) | ||
71 | { | ||
72 | case "help": | ||
73 | m_console.Notice( | ||
74 | @"shutdown - shutdown this asset server (USE CAUTION!) | ||
75 | stats - statistical information for this server"); | ||
76 | |||
77 | break; | ||
78 | |||
79 | case "stats": | ||
80 | m_console.Notice("STATS", Environment.NewLine + StatsManager.AssetStats.Report()); | ||
81 | break; | ||
82 | |||
83 | case "shutdown": | ||
84 | m_console.Close(); | ||
85 | Environment.Exit(0); | ||
86 | break; | ||
87 | } | ||
88 | } | ||
89 | |||
90 | #endregion | ||
57 | 91 | ||
58 | [STAThread] | 92 | [STAThread] |
59 | public static void Main(string[] args) | 93 | public static void Main(string[] args) |
@@ -78,13 +112,6 @@ namespace OpenSim.Grid.AssetServer | |||
78 | } | 112 | } |
79 | } | 113 | } |
80 | 114 | ||
81 | public OpenAsset_Main() | ||
82 | { | ||
83 | m_console = new ConsoleBase("OpenAsset", this); | ||
84 | |||
85 | MainConsole.Instance = m_console; | ||
86 | } | ||
87 | |||
88 | public void Startup() | 115 | public void Startup() |
89 | { | 116 | { |
90 | m_config = new AssetConfig("ASSET SERVER", (Path.Combine(Util.configDir(), "AssetServer_Config.xml"))); | 117 | m_config = new AssetConfig("ASSET SERVER", (Path.Combine(Util.configDir(), "AssetServer_Config.xml"))); |
@@ -160,42 +187,18 @@ namespace OpenSim.Grid.AssetServer | |||
160 | catch (Exception e) | 187 | catch (Exception e) |
161 | { | 188 | { |
162 | m_log.Warn("[ASSET]: setupDB() - Exception occured"); | 189 | m_log.Warn("[ASSET]: setupDB() - Exception occured"); |
163 | m_log.Warn("[ASSET]: " + e.ToString()); | 190 | m_log.Warn("[ASSET]: " + e); |
164 | } | 191 | } |
165 | } | 192 | } |
166 | 193 | ||
167 | public void LoadDefaultAssets() | 194 | public void LoadDefaultAssets() |
168 | { | 195 | { |
169 | assetLoader.ForEachDefaultXmlAsset(StoreAsset); | 196 | assetLoader.ForEachDefaultXmlAsset(StoreAsset); |
170 | } | 197 | } |
171 | 198 | ||
172 | protected void StoreAsset(AssetBase asset) | 199 | protected void StoreAsset(AssetBase asset) |
173 | { | 200 | { |
174 | m_assetProvider.CreateAsset(asset); | 201 | m_assetProvider.CreateAsset(asset); |
175 | } | 202 | } |
176 | |||
177 | public override void RunCmd(string cmd, string[] cmdparams) | ||
178 | { | ||
179 | base.RunCmd(cmd, cmdparams); | ||
180 | |||
181 | switch (cmd) | ||
182 | { | ||
183 | case "help": | ||
184 | m_console.Notice( | ||
185 | @"shutdown - shutdown this asset server (USE CAUTION!) | ||
186 | stats - statistical information for this server"); | ||
187 | |||
188 | break; | ||
189 | |||
190 | case "stats": | ||
191 | m_console.Notice("STATS", Environment.NewLine + StatsManager.AssetStats.Report()); | ||
192 | break; | ||
193 | |||
194 | case "shutdown": | ||
195 | m_console.Close(); | ||
196 | Environment.Exit(0); | ||
197 | break; | ||
198 | } | ||
199 | } | ||
200 | } | 203 | } |
201 | } | 204 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs b/OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs index 6f219a6..3bae064 100644 --- a/OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs +++ b/OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs | |||
@@ -60,4 +60,4 @@ using System.Runtime.InteropServices; | |||
60 | // | 60 | // |
61 | 61 | ||
62 | [assembly : AssemblyVersion("1.0.0.0")] | 62 | [assembly : AssemblyVersion("1.0.0.0")] |
63 | [assembly : AssemblyFileVersion("1.0.0.0")] | 63 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Grid/AssetServer/RestService.cs b/OpenSim/Grid/AssetServer/RestService.cs index ece826e..93f86b8 100644 --- a/OpenSim/Grid/AssetServer/RestService.cs +++ b/OpenSim/Grid/AssetServer/RestService.cs | |||
@@ -43,8 +43,8 @@ namespace OpenSim.Grid.AssetServer | |||
43 | { | 43 | { |
44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
46 | private readonly IAssetProvider m_assetProvider; | ||
46 | private OpenAsset_Main m_assetManager; | 47 | private OpenAsset_Main m_assetManager; |
47 | private IAssetProvider m_assetProvider; | ||
48 | 48 | ||
49 | /// <summary> | 49 | /// <summary> |
50 | /// Constructor. | 50 | /// Constructor. |
@@ -58,28 +58,28 @@ namespace OpenSim.Grid.AssetServer | |||
58 | m_assetManager = assetManager; | 58 | m_assetManager = assetManager; |
59 | m_assetProvider = assetProvider; | 59 | m_assetProvider = assetProvider; |
60 | } | 60 | } |
61 | 61 | ||
62 | public override byte[] Handle(string path, Stream request) | 62 | public override byte[] Handle(string path, Stream request) |
63 | { | 63 | { |
64 | string param = GetParam(path); | 64 | string param = GetParam(path); |
65 | byte[] result = new byte[] {}; | 65 | byte[] result = new byte[] {}; |
66 | 66 | ||
67 | string[] p = param.Split(new char[] {'/', '?', '&'}, StringSplitOptions.RemoveEmptyEntries); | 67 | string[] p = param.Split(new[] {'/', '?', '&'}, StringSplitOptions.RemoveEmptyEntries); |
68 | 68 | ||
69 | if (p.Length > 0) | 69 | if (p.Length > 0) |
70 | { | 70 | { |
71 | LLUUID assetID = null; | 71 | LLUUID assetID = null; |
72 | 72 | ||
73 | if (!LLUUID.TryParse(p[0], out assetID)) | 73 | if (!LLUUID.TryParse(p[0], out assetID)) |
74 | { | 74 | { |
75 | m_log.InfoFormat( | 75 | m_log.InfoFormat( |
76 | "[REST]: GET:/asset ignoring request with malformed UUID {0}", p[0]); | 76 | "[REST]: GET:/asset ignoring request with malformed UUID {0}", p[0]); |
77 | return result; | 77 | return result; |
78 | } | 78 | } |
79 | 79 | ||
80 | if (StatsManager.AssetStats != null) | 80 | if (StatsManager.AssetStats != null) |
81 | StatsManager.AssetStats.AddRequest(); | 81 | StatsManager.AssetStats.AddRequest(); |
82 | 82 | ||
83 | AssetBase asset = m_assetProvider.FetchAsset(assetID); | 83 | AssetBase asset = m_assetProvider.FetchAsset(assetID); |
84 | if (asset != null) | 84 | if (asset != null) |
85 | { | 85 | { |
@@ -94,32 +94,39 @@ namespace OpenSim.Grid.AssetServer | |||
94 | //StreamReader sr = new StreamReader(ms); | 94 | //StreamReader sr = new StreamReader(ms); |
95 | 95 | ||
96 | result = ms.GetBuffer(); | 96 | result = ms.GetBuffer(); |
97 | 97 | ||
98 | m_log.InfoFormat( | 98 | m_log.InfoFormat( |
99 | "[REST]: GET:/asset found {0} with name {1}, size {2} bytes", | 99 | "[REST]: GET:/asset found {0} with name {1}, size {2} bytes", |
100 | assetID, asset.Name, result.Length); | 100 | assetID, asset.Name, result.Length); |
101 | 101 | ||
102 | Array.Resize<byte>(ref result, (int) ms.Length); | 102 | Array.Resize(ref result, (int) ms.Length); |
103 | } | 103 | } |
104 | else | 104 | else |
105 | { | 105 | { |
106 | if (StatsManager.AssetStats != null) | 106 | if (StatsManager.AssetStats != null) |
107 | StatsManager.AssetStats.AddNotFoundRequest(); | 107 | StatsManager.AssetStats.AddNotFoundRequest(); |
108 | 108 | ||
109 | m_log.InfoFormat("[REST]: GET:/asset failed to find {0}", assetID); | 109 | m_log.InfoFormat("[REST]: GET:/asset failed to find {0}", assetID); |
110 | } | 110 | } |
111 | } | 111 | } |
112 | 112 | ||
113 | return result; | 113 | return result; |
114 | } | 114 | } |
115 | } | 115 | } |
116 | 116 | ||
117 | public class PostAssetStreamHandler : BaseStreamHandler | 117 | public class PostAssetStreamHandler : BaseStreamHandler |
118 | { | 118 | { |
119 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 119 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
120 | 120 | ||
121 | private readonly IAssetProvider m_assetProvider; | ||
121 | private OpenAsset_Main m_assetManager; | 122 | private OpenAsset_Main m_assetManager; |
122 | private IAssetProvider m_assetProvider; | 123 | |
124 | public PostAssetStreamHandler(OpenAsset_Main assetManager, IAssetProvider assetProvider) | ||
125 | : base("POST", "/assets") | ||
126 | { | ||
127 | m_assetManager = assetManager; | ||
128 | m_assetProvider = assetProvider; | ||
129 | } | ||
123 | 130 | ||
124 | public override byte[] Handle(string path, Stream request) | 131 | public override byte[] Handle(string path, Stream request) |
125 | { | 132 | { |
@@ -139,12 +146,5 @@ namespace OpenSim.Grid.AssetServer | |||
139 | 146 | ||
140 | return new byte[] {}; | 147 | return new byte[] {}; |
141 | } | 148 | } |
142 | |||
143 | public PostAssetStreamHandler(OpenAsset_Main assetManager, IAssetProvider assetProvider) | ||
144 | : base("POST", "/assets") | ||
145 | { | ||
146 | m_assetManager = assetManager; | ||
147 | m_assetProvider = assetProvider; | ||
148 | } | ||
149 | } | 149 | } |
150 | } | 150 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/GridServer/GridManager.cs b/OpenSim/Grid/GridServer/GridManager.cs index 7eb9c34..32f002a 100644 --- a/OpenSim/Grid/GridServer/GridManager.cs +++ b/OpenSim/Grid/GridServer/GridManager.cs | |||
@@ -44,11 +44,11 @@ namespace OpenSim.Grid.GridServer | |||
44 | { | 44 | { |
45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
47 | private Dictionary<string, IGridData> _plugins = new Dictionary<string, IGridData>(); | 47 | private readonly Dictionary<string, ILogData> _logplugins = new Dictionary<string, ILogData>(); |
48 | private Dictionary<string, ILogData> _logplugins = new Dictionary<string, ILogData>(); | ||
49 | 48 | ||
50 | // This is here so that the grid server can hand out MessageServer settings to regions on registration | 49 | // This is here so that the grid server can hand out MessageServer settings to regions on registration |
51 | private List<MessageServerInfo> _MessageServers = new List<MessageServerInfo>(); | 50 | private readonly List<MessageServerInfo> _MessageServers = new List<MessageServerInfo>(); |
51 | private readonly Dictionary<string, IGridData> _plugins = new Dictionary<string, IGridData>(); | ||
52 | 52 | ||
53 | public GridConfig Config; | 53 | public GridConfig Config; |
54 | 54 | ||
@@ -72,7 +72,7 @@ namespace OpenSim.Grid.GridServer | |||
72 | if (typeInterface != null) | 72 | if (typeInterface != null) |
73 | { | 73 | { |
74 | IGridData plug = | 74 | IGridData plug = |
75 | (IGridData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 75 | (IGridData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
76 | plug.Initialise(); | 76 | plug.Initialise(); |
77 | _plugins.Add(plug.getName(), plug); | 77 | _plugins.Add(plug.getName(), plug); |
78 | m_log.Info("[DATA]: Added IGridData Interface"); | 78 | m_log.Info("[DATA]: Added IGridData Interface"); |
@@ -84,7 +84,7 @@ namespace OpenSim.Grid.GridServer | |||
84 | if (typeInterface != null) | 84 | if (typeInterface != null) |
85 | { | 85 | { |
86 | ILogData plug = | 86 | ILogData plug = |
87 | (ILogData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 87 | (ILogData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
88 | plug.Initialise(); | 88 | plug.Initialise(); |
89 | _logplugins.Add(plug.getName(), plug); | 89 | _logplugins.Add(plug.getName(), plug); |
90 | m_log.Info("[DATA]: Added ILogData Interface"); | 90 | m_log.Info("[DATA]: Added ILogData Interface"); |
@@ -152,7 +152,7 @@ namespace OpenSim.Grid.GridServer | |||
152 | } | 152 | } |
153 | catch | 153 | catch |
154 | { | 154 | { |
155 | m_log.Warn("[storage]: Unable to find region " + handle.ToString() + " via " + kvp.Key); | 155 | m_log.Warn("[storage]: Unable to find region " + handle + " via " + kvp.Key); |
156 | } | 156 | } |
157 | } | 157 | } |
158 | return null; | 158 | return null; |
@@ -218,20 +218,20 @@ namespace OpenSim.Grid.GridServer | |||
218 | { | 218 | { |
219 | if ( | 219 | if ( |
220 | GetRegion( | 220 | GetRegion( |
221 | Util.UIntsToLong((uint)((central_region.regionLocX + x) * Constants.RegionSize), | 221 | Util.UIntsToLong((uint) ((central_region.regionLocX + x) * Constants.RegionSize), |
222 | (uint)(central_region.regionLocY + y) * Constants.RegionSize)) != null) | 222 | (uint) (central_region.regionLocY + y) * Constants.RegionSize)) != null) |
223 | { | 223 | { |
224 | neighbour = | 224 | neighbour = |
225 | GetRegion( | 225 | GetRegion( |
226 | Util.UIntsToLong((uint)((central_region.regionLocX + x) * Constants.RegionSize), | 226 | Util.UIntsToLong((uint) ((central_region.regionLocX + x) * Constants.RegionSize), |
227 | (uint)(central_region.regionLocY + y) * Constants.RegionSize)); | 227 | (uint) (central_region.regionLocY + y) * Constants.RegionSize)); |
228 | 228 | ||
229 | response += "<neighbour>"; | 229 | response += "<neighbour>"; |
230 | response += "<sim_ip>" + neighbour.serverIP + "</sim_ip>"; | 230 | response += "<sim_ip>" + neighbour.serverIP + "</sim_ip>"; |
231 | response += "<sim_port>" + neighbour.serverPort.ToString() + "</sim_port>"; | 231 | response += "<sim_port>" + neighbour.serverPort + "</sim_port>"; |
232 | response += "<locx>" + neighbour.regionLocX.ToString() + "</locx>"; | 232 | response += "<locx>" + neighbour.regionLocX + "</locx>"; |
233 | response += "<locy>" + neighbour.regionLocY.ToString() + "</locy>"; | 233 | response += "<locy>" + neighbour.regionLocY + "</locy>"; |
234 | response += "<regionhandle>" + neighbour.regionHandle.ToString() + "</regionhandle>"; | 234 | response += "<regionhandle>" + neighbour.regionHandle + "</regionhandle>"; |
235 | response += "</neighbour>"; | 235 | response += "</neighbour>"; |
236 | } | 236 | } |
237 | } | 237 | } |
@@ -287,10 +287,10 @@ namespace OpenSim.Grid.GridServer | |||
287 | RegionProfileData sim; | 287 | RegionProfileData sim; |
288 | RegionProfileData existingSim; | 288 | RegionProfileData existingSim; |
289 | 289 | ||
290 | Hashtable requestData = (Hashtable)request.Params[0]; | 290 | Hashtable requestData = (Hashtable) request.Params[0]; |
291 | LLUUID uuid; | 291 | LLUUID uuid; |
292 | 292 | ||
293 | if (!requestData.ContainsKey("UUID") || !LLUUID.TryParse((string)requestData["UUID"], out uuid)) | 293 | if (!requestData.ContainsKey("UUID") || !LLUUID.TryParse((string) requestData["UUID"], out uuid)) |
294 | { | 294 | { |
295 | m_log.Info("[GRID]: Region connected without a UUID, ignoring."); | 295 | m_log.Info("[GRID]: Region connected without a UUID, ignoring."); |
296 | return ErrorResponse("No UUID passed to grid server - unable to connect you"); | 296 | return ErrorResponse("No UUID passed to grid server - unable to connect you"); |
@@ -303,7 +303,7 @@ namespace OpenSim.Grid.GridServer | |||
303 | catch (FormatException e) | 303 | catch (FormatException e) |
304 | { | 304 | { |
305 | m_log.Info("[GRID]: Invalid login parameters, ignoring."); | 305 | m_log.Info("[GRID]: Invalid login parameters, ignoring."); |
306 | return ErrorResponse("Wrong format in login parameters. Please verify parameters." + e.ToString() ); | 306 | return ErrorResponse("Wrong format in login parameters. Please verify parameters." + e); |
307 | } | 307 | } |
308 | 308 | ||
309 | existingSim = GetRegion(sim.regionHandle); | 309 | existingSim = GetRegion(sim.regionHandle); |
@@ -329,7 +329,7 @@ namespace OpenSim.Grid.GridServer | |||
329 | { | 329 | { |
330 | DataResponse insertResponse; | 330 | DataResponse insertResponse; |
331 | 331 | ||
332 | if( existingSim == null ) | 332 | if (existingSim == null) |
333 | { | 333 | { |
334 | insertResponse = kvp.Value.AddProfile(sim); | 334 | insertResponse = kvp.Value.AddProfile(sim); |
335 | } | 335 | } |
@@ -348,20 +348,20 @@ namespace OpenSim.Grid.GridServer | |||
348 | break; | 348 | break; |
349 | case DataResponse.RESPONSE_INVALIDCREDENTIALS: | 349 | case DataResponse.RESPONSE_INVALIDCREDENTIALS: |
350 | m_log.Warn("[storage]: " + | 350 | m_log.Warn("[storage]: " + |
351 | "New sim creation failed (Invalid Credentials): " + sim.regionName); | 351 | "New sim creation failed (Invalid Credentials): " + sim.regionName); |
352 | break; | 352 | break; |
353 | case DataResponse.RESPONSE_AUTHREQUIRED: | 353 | case DataResponse.RESPONSE_AUTHREQUIRED: |
354 | m_log.Warn("[storage]: " + | 354 | m_log.Warn("[storage]: " + |
355 | "New sim creation failed (Authentication Required): " + | 355 | "New sim creation failed (Authentication Required): " + |
356 | sim.regionName); | 356 | sim.regionName); |
357 | break; | 357 | break; |
358 | } | 358 | } |
359 | } | 359 | } |
360 | catch (Exception e) | 360 | catch (Exception e) |
361 | { | 361 | { |
362 | m_log.Warn("[storage]: " + | 362 | m_log.Warn("[storage]: " + |
363 | "Unable to add region " + sim.UUID.ToString() + " via " + kvp.Key); | 363 | "Unable to add region " + sim.UUID + " via " + kvp.Key); |
364 | m_log.Warn("[storage]: " + e.ToString()); | 364 | m_log.Warn("[storage]: " + e); |
365 | } | 365 | } |
366 | } | 366 | } |
367 | 367 | ||
@@ -375,7 +375,8 @@ namespace OpenSim.Grid.GridServer | |||
375 | { | 375 | { |
376 | m_log.Warn("[grid]: Authentication failed when trying to add new region " + sim.regionName + | 376 | m_log.Warn("[grid]: Authentication failed when trying to add new region " + sim.regionName + |
377 | " at location " + sim.regionLocX + | 377 | " at location " + sim.regionLocX + |
378 | " " + sim.regionLocY + " with TheSim.regionRecvKey " + sim.regionRecvKey + "(" + Config.SimSendKey + ") and TheSim.regionRecvKey " + sim.regionSendKey + "(" + Config.SimRecvKey + ") "); | 378 | " " + sim.regionLocY + " with TheSim.regionRecvKey " + sim.regionRecvKey + "(" + Config.SimSendKey + |
379 | ") and TheSim.regionRecvKey " + sim.regionSendKey + "(" + Config.SimRecvKey + ") "); | ||
379 | } | 380 | } |
380 | else | 381 | else |
381 | { | 382 | { |
@@ -389,7 +390,8 @@ namespace OpenSim.Grid.GridServer | |||
389 | } | 390 | } |
390 | else | 391 | else |
391 | { | 392 | { |
392 | m_log.Warn("[grid]: Failed to add new region " + sim.regionName + " at location " + sim.regionLocX + " " + sim.regionLocY + " currently occupied by " + existingSim.regionName); | 393 | m_log.Warn("[grid]: Failed to add new region " + sim.regionName + " at location " + sim.regionLocX + " " + sim.regionLocY + |
394 | " currently occupied by " + existingSim.regionName); | ||
393 | return ErrorResponse("Another region already exists at that location. Try another"); | 395 | return ErrorResponse("Another region already exists at that location. Try another"); |
394 | } | 396 | } |
395 | } | 397 | } |
@@ -464,7 +466,7 @@ namespace OpenSim.Grid.GridServer | |||
464 | foreach (KeyValuePair<ulong, RegionProfileData> aSim in neighbours) | 466 | foreach (KeyValuePair<ulong, RegionProfileData> aSim in neighbours) |
465 | { | 467 | { |
466 | NeighbourBlock = new Hashtable(); | 468 | NeighbourBlock = new Hashtable(); |
467 | NeighbourBlock["sim_ip"] = Util.GetHostFromDNS(aSim.Value.serverIP.ToString()).ToString(); | 469 | NeighbourBlock["sim_ip"] = Util.GetHostFromDNS(aSim.Value.serverIP).ToString(); |
468 | NeighbourBlock["sim_port"] = aSim.Value.serverPort.ToString(); | 470 | NeighbourBlock["sim_port"] = aSim.Value.serverPort.ToString(); |
469 | NeighbourBlock["region_locx"] = aSim.Value.regionLocX.ToString(); | 471 | NeighbourBlock["region_locx"] = aSim.Value.regionLocX.ToString(); |
470 | NeighbourBlock["region_locy"] = aSim.Value.regionLocY.ToString(); | 472 | NeighbourBlock["region_locy"] = aSim.Value.regionLocY.ToString(); |
@@ -485,13 +487,13 @@ namespace OpenSim.Grid.GridServer | |||
485 | { | 487 | { |
486 | if ( | 488 | if ( |
487 | GetRegion( | 489 | GetRegion( |
488 | Helpers.UIntsToLong((uint)((sim.regionLocX + x) * Constants.RegionSize), | 490 | Helpers.UIntsToLong((uint) ((sim.regionLocX + x) * Constants.RegionSize), |
489 | (uint)(sim.regionLocY + y) * Constants.RegionSize)) != null) | 491 | (uint) (sim.regionLocY + y) * Constants.RegionSize)) != null) |
490 | { | 492 | { |
491 | neighbour = | 493 | neighbour = |
492 | GetRegion( | 494 | GetRegion( |
493 | Helpers.UIntsToLong((uint)((sim.regionLocX + x) * Constants.RegionSize), | 495 | Helpers.UIntsToLong((uint) ((sim.regionLocX + x) * Constants.RegionSize), |
494 | (uint)(sim.regionLocY + y) * Constants.RegionSize)); | 496 | (uint) (sim.regionLocY + y) * Constants.RegionSize)); |
495 | 497 | ||
496 | NeighbourBlock = new Hashtable(); | 498 | NeighbourBlock = new Hashtable(); |
497 | NeighbourBlock["sim_ip"] = Util.GetHostFromDNS(neighbour.serverIP).ToString(); | 499 | NeighbourBlock["sim_ip"] = Util.GetHostFromDNS(neighbour.serverIP).ToString(); |
@@ -519,27 +521,26 @@ namespace OpenSim.Grid.GridServer | |||
519 | RegionProfileData sim; | 521 | RegionProfileData sim; |
520 | sim = new RegionProfileData(); | 522 | sim = new RegionProfileData(); |
521 | 523 | ||
522 | sim.UUID = new LLUUID((string)requestData["UUID"]); | 524 | sim.UUID = new LLUUID((string) requestData["UUID"]); |
523 | sim.originUUID = new LLUUID((string)requestData["originUUID"]); | 525 | sim.originUUID = new LLUUID((string) requestData["originUUID"]); |
524 | 526 | ||
525 | sim.regionRecvKey = String.Empty; | 527 | sim.regionRecvKey = String.Empty; |
526 | sim.regionSendKey = String.Empty; | 528 | sim.regionSendKey = String.Empty; |
527 | 529 | ||
528 | if (requestData.ContainsKey("region_secret")) | 530 | if (requestData.ContainsKey("region_secret")) |
529 | { | 531 | { |
530 | string regionsecret = (string)requestData["region_secret"]; | 532 | string regionsecret = (string) requestData["region_secret"]; |
531 | if (regionsecret.Length > 0) | 533 | if (regionsecret.Length > 0) |
532 | sim.regionSecret = regionsecret; | 534 | sim.regionSecret = regionsecret; |
533 | else | 535 | else |
534 | sim.regionSecret = Config.SimRecvKey; | 536 | sim.regionSecret = Config.SimRecvKey; |
535 | |||
536 | } | 537 | } |
537 | else | 538 | else |
538 | { | 539 | { |
539 | sim.regionSecret = Config.SimRecvKey; | 540 | sim.regionSecret = Config.SimRecvKey; |
540 | } | 541 | } |
541 | 542 | ||
542 | 543 | ||
543 | sim.regionDataURI = String.Empty; | 544 | sim.regionDataURI = String.Empty; |
544 | sim.regionAssetURI = Config.DefaultAssetServer; | 545 | sim.regionAssetURI = Config.DefaultAssetServer; |
545 | sim.regionAssetRecvKey = Config.AssetRecvKey; | 546 | sim.regionAssetRecvKey = Config.AssetRecvKey; |
@@ -548,16 +549,16 @@ namespace OpenSim.Grid.GridServer | |||
548 | sim.regionUserSendKey = Config.UserSendKey; | 549 | sim.regionUserSendKey = Config.UserSendKey; |
549 | sim.regionUserRecvKey = Config.UserRecvKey; | 550 | sim.regionUserRecvKey = Config.UserRecvKey; |
550 | 551 | ||
551 | sim.serverIP = (string)requestData["sim_ip"]; | 552 | sim.serverIP = (string) requestData["sim_ip"]; |
552 | sim.serverPort = Convert.ToUInt32((string)requestData["sim_port"]); | 553 | sim.serverPort = Convert.ToUInt32((string) requestData["sim_port"]); |
553 | sim.httpPort = Convert.ToUInt32((string)requestData["http_port"]); | 554 | sim.httpPort = Convert.ToUInt32((string) requestData["http_port"]); |
554 | sim.remotingPort = Convert.ToUInt32((string)requestData["remoting_port"]); | 555 | sim.remotingPort = Convert.ToUInt32((string) requestData["remoting_port"]); |
555 | sim.regionLocX = Convert.ToUInt32((string)requestData["region_locx"]); | 556 | sim.regionLocX = Convert.ToUInt32((string) requestData["region_locx"]); |
556 | sim.regionLocY = Convert.ToUInt32((string)requestData["region_locy"]); | 557 | sim.regionLocY = Convert.ToUInt32((string) requestData["region_locy"]); |
557 | sim.regionLocZ = 0; | 558 | sim.regionLocZ = 0; |
558 | 559 | ||
559 | LLUUID textureID; | 560 | LLUUID textureID; |
560 | if (LLUUID.TryParse((string)requestData["map-image-id"], out textureID)) | 561 | if (LLUUID.TryParse((string) requestData["map-image-id"], out textureID)) |
561 | { | 562 | { |
562 | sim.regionMapTextureID = textureID; | 563 | sim.regionMapTextureID = textureID; |
563 | } | 564 | } |
@@ -570,21 +571,23 @@ namespace OpenSim.Grid.GridServer | |||
570 | // | 571 | // |
571 | // this particular section of the mod attempts to receive a value from the region's xml file by way of | 572 | // this particular section of the mod attempts to receive a value from the region's xml file by way of |
572 | // OSG1GridServices for the region's owner | 573 | // OSG1GridServices for the region's owner |
573 | sim.owner_uuid = (string)requestData["master_avatar_uuid"]; | 574 | sim.owner_uuid = (string) requestData["master_avatar_uuid"]; |
574 | 575 | ||
575 | try | 576 | try |
576 | { | 577 | { |
577 | sim.regionRecvKey = (string)requestData["recvkey"]; | 578 | sim.regionRecvKey = (string) requestData["recvkey"]; |
578 | sim.regionSendKey = (string)requestData["authkey"]; | 579 | sim.regionSendKey = (string) requestData["authkey"]; |
580 | } | ||
581 | catch (KeyNotFoundException) | ||
582 | { | ||
579 | } | 583 | } |
580 | catch (KeyNotFoundException) { } | ||
581 | 584 | ||
582 | sim.regionHandle = Helpers.UIntsToLong((sim.regionLocX * Constants.RegionSize), (sim.regionLocY * Constants.RegionSize)); | 585 | sim.regionHandle = Helpers.UIntsToLong((sim.regionLocX * Constants.RegionSize), (sim.regionLocY * Constants.RegionSize)); |
583 | sim.serverURI = (string)requestData["server_uri"]; | 586 | sim.serverURI = (string) requestData["server_uri"]; |
584 | 587 | ||
585 | sim.httpServerURI = "http://" + sim.serverIP + ":" + sim.httpPort + "/"; | 588 | sim.httpServerURI = "http://" + sim.serverIP + ":" + sim.httpPort + "/"; |
586 | 589 | ||
587 | sim.regionName = (string)requestData["sim_name"]; | 590 | sim.regionName = (string) requestData["sim_name"]; |
588 | return sim; | 591 | return sim; |
589 | } | 592 | } |
590 | 593 | ||
@@ -604,7 +607,7 @@ namespace OpenSim.Grid.GridServer | |||
604 | 607 | ||
605 | //RegionProfileData TheSim = null; | 608 | //RegionProfileData TheSim = null; |
606 | string uuid; | 609 | string uuid; |
607 | Hashtable requestData = (Hashtable)request.Params[0]; | 610 | Hashtable requestData = (Hashtable) request.Params[0]; |
608 | 611 | ||
609 | if (requestData.ContainsKey("UUID")) | 612 | if (requestData.ContainsKey("UUID")) |
610 | { | 613 | { |
@@ -624,7 +627,7 @@ namespace OpenSim.Grid.GridServer | |||
624 | //OpenSim.Data.MySQL.MySQLGridData dbengine = new OpenSim.Data.MySQL.MySQLGridData(); | 627 | //OpenSim.Data.MySQL.MySQLGridData dbengine = new OpenSim.Data.MySQL.MySQLGridData(); |
625 | try | 628 | try |
626 | { | 629 | { |
627 | MySQLGridData mysqldata = (MySQLGridData)(kvp.Value); | 630 | MySQLGridData mysqldata = (MySQLGridData) (kvp.Value); |
628 | //DataResponse insertResponse = mysqldata.DeleteProfile(TheSim); | 631 | //DataResponse insertResponse = mysqldata.DeleteProfile(TheSim); |
629 | DataResponse insertResponse = mysqldata.DeleteProfile(uuid); | 632 | DataResponse insertResponse = mysqldata.DeleteProfile(uuid); |
630 | switch (insertResponse) | 633 | switch (insertResponse) |
@@ -664,22 +667,22 @@ namespace OpenSim.Grid.GridServer | |||
664 | /// <returns></returns> | 667 | /// <returns></returns> |
665 | public XmlRpcResponse XmlRpcSimulatorDataRequestMethod(XmlRpcRequest request) | 668 | public XmlRpcResponse XmlRpcSimulatorDataRequestMethod(XmlRpcRequest request) |
666 | { | 669 | { |
667 | Hashtable requestData = (Hashtable)request.Params[0]; | 670 | Hashtable requestData = (Hashtable) request.Params[0]; |
668 | Hashtable responseData = new Hashtable(); | 671 | Hashtable responseData = new Hashtable(); |
669 | RegionProfileData simData = null; | 672 | RegionProfileData simData = null; |
670 | if (requestData.ContainsKey("region_UUID")) | 673 | if (requestData.ContainsKey("region_UUID")) |
671 | { | 674 | { |
672 | simData = GetRegion(new LLUUID((string)requestData["region_UUID"])); | 675 | simData = GetRegion(new LLUUID((string) requestData["region_UUID"])); |
673 | } | 676 | } |
674 | else if (requestData.ContainsKey("region_handle")) | 677 | else if (requestData.ContainsKey("region_handle")) |
675 | { | 678 | { |
676 | //CFK: The if/else below this makes this message redundant. | 679 | //CFK: The if/else below this makes this message redundant. |
677 | //CFK: Console.WriteLine("requesting data for region " + (string) requestData["region_handle"]); | 680 | //CFK: Console.WriteLine("requesting data for region " + (string) requestData["region_handle"]); |
678 | simData = GetRegion(Convert.ToUInt64((string)requestData["region_handle"])); | 681 | simData = GetRegion(Convert.ToUInt64((string) requestData["region_handle"])); |
679 | } | 682 | } |
680 | else if (requestData.ContainsKey("region_name_search")) | 683 | else if (requestData.ContainsKey("region_name_search")) |
681 | { | 684 | { |
682 | simData = GetRegion((string)requestData["region_name_search"]); | 685 | simData = GetRegion((string) requestData["region_name_search"]); |
683 | } | 686 | } |
684 | 687 | ||
685 | if (simData == null) | 688 | if (simData == null) |
@@ -690,8 +693,8 @@ namespace OpenSim.Grid.GridServer | |||
690 | } | 693 | } |
691 | else | 694 | else |
692 | { | 695 | { |
693 | m_log.Info("[DATA]: found " + (string)simData.regionName + " regionHandle = " + | 696 | m_log.Info("[DATA]: found " + simData.regionName + " regionHandle = " + |
694 | (string)requestData["region_handle"]); | 697 | (string) requestData["region_handle"]); |
695 | responseData["sim_ip"] = Util.GetHostFromDNS(simData.serverIP).ToString(); | 698 | responseData["sim_ip"] = Util.GetHostFromDNS(simData.serverIP).ToString(); |
696 | responseData["sim_port"] = simData.serverPort.ToString(); | 699 | responseData["sim_port"] = simData.serverPort.ToString(); |
697 | responseData["server_uri"] = simData.serverURI; | 700 | responseData["server_uri"] = simData.serverURI; |
@@ -713,22 +716,22 @@ namespace OpenSim.Grid.GridServer | |||
713 | { | 716 | { |
714 | int xmin = 980, ymin = 980, xmax = 1020, ymax = 1020; | 717 | int xmin = 980, ymin = 980, xmax = 1020, ymax = 1020; |
715 | 718 | ||
716 | Hashtable requestData = (Hashtable)request.Params[0]; | 719 | Hashtable requestData = (Hashtable) request.Params[0]; |
717 | if (requestData.ContainsKey("xmin")) | 720 | if (requestData.ContainsKey("xmin")) |
718 | { | 721 | { |
719 | xmin = (Int32)requestData["xmin"]; | 722 | xmin = (Int32) requestData["xmin"]; |
720 | } | 723 | } |
721 | if (requestData.ContainsKey("ymin")) | 724 | if (requestData.ContainsKey("ymin")) |
722 | { | 725 | { |
723 | ymin = (Int32)requestData["ymin"]; | 726 | ymin = (Int32) requestData["ymin"]; |
724 | } | 727 | } |
725 | if (requestData.ContainsKey("xmax")) | 728 | if (requestData.ContainsKey("xmax")) |
726 | { | 729 | { |
727 | xmax = (Int32)requestData["xmax"]; | 730 | xmax = (Int32) requestData["xmax"]; |
728 | } | 731 | } |
729 | if (requestData.ContainsKey("ymax")) | 732 | if (requestData.ContainsKey("ymax")) |
730 | { | 733 | { |
731 | ymax = (Int32)requestData["ymax"]; | 734 | ymax = (Int32) requestData["ymax"]; |
732 | } | 735 | } |
733 | //CFK: The second log is more meaningful and either standard or fast generally occurs. | 736 | //CFK: The second log is more meaningful and either standard or fast generally occurs. |
734 | //CFK: m_log.Info("[MAP]: World map request for range (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); | 737 | //CFK: m_log.Info("[MAP]: World map request for range (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); |
@@ -743,15 +746,15 @@ namespace OpenSim.Grid.GridServer | |||
743 | if (fastMode) | 746 | if (fastMode) |
744 | { | 747 | { |
745 | Dictionary<ulong, RegionProfileData> neighbours = | 748 | Dictionary<ulong, RegionProfileData> neighbours = |
746 | GetRegions((uint)xmin, (uint)ymin, (uint)xmax, (uint)ymax); | 749 | GetRegions((uint) xmin, (uint) ymin, (uint) xmax, (uint) ymax); |
747 | 750 | ||
748 | foreach (KeyValuePair<ulong, RegionProfileData> aSim in neighbours) | 751 | foreach (KeyValuePair<ulong, RegionProfileData> aSim in neighbours) |
749 | { | 752 | { |
750 | Hashtable simProfileBlock = new Hashtable(); | 753 | Hashtable simProfileBlock = new Hashtable(); |
751 | simProfileBlock["x"] = aSim.Value.regionLocX.ToString(); | 754 | simProfileBlock["x"] = aSim.Value.regionLocX.ToString(); |
752 | simProfileBlock["y"] = aSim.Value.regionLocY.ToString(); | 755 | simProfileBlock["y"] = aSim.Value.regionLocY.ToString(); |
753 | Console.WriteLine("send neighbour info for " + aSim.Value.regionLocX.ToString() + " , " + | 756 | Console.WriteLine("send neighbour info for " + aSim.Value.regionLocX + " , " + |
754 | aSim.Value.regionLocY.ToString()); | 757 | aSim.Value.regionLocY); |
755 | simProfileBlock["name"] = aSim.Value.regionName; | 758 | simProfileBlock["name"] = aSim.Value.regionName; |
756 | simProfileBlock["access"] = 21; | 759 | simProfileBlock["access"] = 21; |
757 | simProfileBlock["region-flags"] = 512; | 760 | simProfileBlock["region-flags"] = 512; |
@@ -761,15 +764,15 @@ namespace OpenSim.Grid.GridServer | |||
761 | 764 | ||
762 | // For Sugilite compatibility | 765 | // For Sugilite compatibility |
763 | simProfileBlock["regionhandle"] = aSim.Value.regionHandle.ToString(); | 766 | simProfileBlock["regionhandle"] = aSim.Value.regionHandle.ToString(); |
764 | simProfileBlock["sim_ip"] = aSim.Value.serverIP.ToString(); | 767 | simProfileBlock["sim_ip"] = aSim.Value.serverIP; |
765 | simProfileBlock["sim_port"] = aSim.Value.serverPort.ToString(); | 768 | simProfileBlock["sim_port"] = aSim.Value.serverPort.ToString(); |
766 | simProfileBlock["sim_uri"] = aSim.Value.serverURI.ToString(); | 769 | simProfileBlock["sim_uri"] = aSim.Value.serverURI; |
767 | simProfileBlock["uuid"] = aSim.Value.UUID.ToString(); | 770 | simProfileBlock["uuid"] = aSim.Value.UUID.ToString(); |
768 | simProfileBlock["remoting_port"] = aSim.Value.remotingPort; | 771 | simProfileBlock["remoting_port"] = aSim.Value.remotingPort; |
769 | 772 | ||
770 | simProfileList.Add(simProfileBlock); | 773 | simProfileList.Add(simProfileBlock); |
771 | } | 774 | } |
772 | m_log.Info("[MAP]: Fast map " + simProfileList.Count.ToString() + | 775 | m_log.Info("[MAP]: Fast map " + simProfileList.Count + |
773 | " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); | 776 | " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); |
774 | } | 777 | } |
775 | else | 778 | else |
@@ -779,7 +782,7 @@ namespace OpenSim.Grid.GridServer | |||
779 | { | 782 | { |
780 | for (int y = ymin; y < ymax + 1; y++) | 783 | for (int y = ymin; y < ymax + 1; y++) |
781 | { | 784 | { |
782 | ulong regHandle = Helpers.UIntsToLong((uint)(x * Constants.RegionSize), (uint)(y * Constants.RegionSize)); | 785 | ulong regHandle = Helpers.UIntsToLong((uint) (x * Constants.RegionSize), (uint) (y * Constants.RegionSize)); |
783 | simProfile = GetRegion(regHandle); | 786 | simProfile = GetRegion(regHandle); |
784 | if (simProfile != null) | 787 | if (simProfile != null) |
785 | { | 788 | { |
@@ -795,16 +798,16 @@ namespace OpenSim.Grid.GridServer | |||
795 | 798 | ||
796 | // For Sugilite compatibility | 799 | // For Sugilite compatibility |
797 | simProfileBlock["regionhandle"] = simProfile.regionHandle.ToString(); | 800 | simProfileBlock["regionhandle"] = simProfile.regionHandle.ToString(); |
798 | simProfileBlock["sim_ip"] = simProfile.serverIP.ToString(); | 801 | simProfileBlock["sim_ip"] = simProfile.serverIP; |
799 | simProfileBlock["sim_port"] = simProfile.serverPort.ToString(); | 802 | simProfileBlock["sim_port"] = simProfile.serverPort.ToString(); |
800 | simProfileBlock["sim_uri"] = simProfile.serverURI.ToString(); | 803 | simProfileBlock["sim_uri"] = simProfile.serverURI; |
801 | simProfileBlock["uuid"] = simProfile.UUID.ToString(); | 804 | simProfileBlock["uuid"] = simProfile.UUID.ToString(); |
802 | 805 | ||
803 | simProfileList.Add(simProfileBlock); | 806 | simProfileList.Add(simProfileBlock); |
804 | } | 807 | } |
805 | } | 808 | } |
806 | } | 809 | } |
807 | m_log.Info("[MAP]: Std map " + simProfileList.Count.ToString() + | 810 | m_log.Info("[MAP]: Std map " + simProfileList.Count + |
808 | " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); | 811 | " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); |
809 | } | 812 | } |
810 | 813 | ||
@@ -860,12 +863,12 @@ namespace OpenSim.Grid.GridServer | |||
860 | respstring = "<Root>"; | 863 | respstring = "<Root>"; |
861 | respstring += "<authkey>" + TheSim.regionSendKey + "</authkey>"; | 864 | respstring += "<authkey>" + TheSim.regionSendKey + "</authkey>"; |
862 | respstring += "<sim>"; | 865 | respstring += "<sim>"; |
863 | respstring += "<uuid>" + TheSim.UUID.ToString() + "</uuid>"; | 866 | respstring += "<uuid>" + TheSim.UUID + "</uuid>"; |
864 | respstring += "<regionname>" + TheSim.regionName + "</regionname>"; | 867 | respstring += "<regionname>" + TheSim.regionName + "</regionname>"; |
865 | respstring += "<sim_ip>" + Util.GetHostFromDNS(TheSim.serverIP).ToString() + "</sim_ip>"; | 868 | respstring += "<sim_ip>" + Util.GetHostFromDNS(TheSim.serverIP) + "</sim_ip>"; |
866 | respstring += "<sim_port>" + TheSim.serverPort.ToString() + "</sim_port>"; | 869 | respstring += "<sim_port>" + TheSim.serverPort + "</sim_port>"; |
867 | respstring += "<region_locx>" + TheSim.regionLocX.ToString() + "</region_locx>"; | 870 | respstring += "<region_locx>" + TheSim.regionLocX + "</region_locx>"; |
868 | respstring += "<region_locy>" + TheSim.regionLocY.ToString() + "</region_locy>"; | 871 | respstring += "<region_locy>" + TheSim.regionLocY + "</region_locy>"; |
869 | respstring += "<estate_id>1</estate_id>"; | 872 | respstring += "<estate_id>1</estate_id>"; |
870 | respstring += "</sim>"; | 873 | respstring += "</sim>"; |
871 | respstring += "</Root>"; | 874 | respstring += "</Root>"; |
@@ -946,12 +949,12 @@ namespace OpenSim.Grid.GridServer | |||
946 | break; | 949 | break; |
947 | 950 | ||
948 | case "region_locx": | 951 | case "region_locx": |
949 | theSim.regionLocX = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText); | 952 | theSim.regionLocX = Convert.ToUInt32(simnode.ChildNodes[i].InnerText); |
950 | theSim.regionHandle = Helpers.UIntsToLong((theSim.regionLocX * Constants.RegionSize), (theSim.regionLocY * Constants.RegionSize)); | 953 | theSim.regionHandle = Helpers.UIntsToLong((theSim.regionLocX * Constants.RegionSize), (theSim.regionLocY * Constants.RegionSize)); |
951 | break; | 954 | break; |
952 | 955 | ||
953 | case "region_locy": | 956 | case "region_locy": |
954 | theSim.regionLocY = Convert.ToUInt32((string)simnode.ChildNodes[i].InnerText); | 957 | theSim.regionLocY = Convert.ToUInt32(simnode.ChildNodes[i].InnerText); |
955 | theSim.regionHandle = Helpers.UIntsToLong((theSim.regionLocX * Constants.RegionSize), (theSim.regionLocY * Constants.RegionSize)); | 958 | theSim.regionHandle = Helpers.UIntsToLong((theSim.regionLocX * Constants.RegionSize), (theSim.regionLocY * Constants.RegionSize)); |
956 | break; | 959 | break; |
957 | } | 960 | } |
@@ -1005,28 +1008,28 @@ namespace OpenSim.Grid.GridServer | |||
1005 | catch (Exception e) | 1008 | catch (Exception e) |
1006 | { | 1009 | { |
1007 | m_log.Warn("[GRID]: GetRegionPlugin Handle " + kvp.Key + " unable to add new sim: " + | 1010 | m_log.Warn("[GRID]: GetRegionPlugin Handle " + kvp.Key + " unable to add new sim: " + |
1008 | e.ToString()); | 1011 | e); |
1009 | } | 1012 | } |
1010 | } | 1013 | } |
1011 | return "OK"; | 1014 | return "OK"; |
1012 | } | 1015 | } |
1013 | catch (Exception e) | 1016 | catch (Exception e) |
1014 | { | 1017 | { |
1015 | return "ERROR! Could not save to database! (" + e.ToString() + ")"; | 1018 | return "ERROR! Could not save to database! (" + e + ")"; |
1016 | } | 1019 | } |
1017 | } | 1020 | } |
1018 | 1021 | ||
1019 | public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) | 1022 | public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) |
1020 | { | 1023 | { |
1021 | XmlRpcResponse response = new XmlRpcResponse(); | 1024 | XmlRpcResponse response = new XmlRpcResponse(); |
1022 | Hashtable requestData = (Hashtable)request.Params[0]; | 1025 | Hashtable requestData = (Hashtable) request.Params[0]; |
1023 | Hashtable responseData = new Hashtable(); | 1026 | Hashtable responseData = new Hashtable(); |
1024 | 1027 | ||
1025 | if (requestData.Contains("uri")) | 1028 | if (requestData.Contains("uri")) |
1026 | { | 1029 | { |
1027 | string URI = (string)requestData["URI"]; | 1030 | string URI = (string) requestData["URI"]; |
1028 | string sendkey = (string)requestData["sendkey"]; | 1031 | string sendkey = (string) requestData["sendkey"]; |
1029 | string recvkey = (string)requestData["recvkey"]; | 1032 | string recvkey = (string) requestData["recvkey"]; |
1030 | MessageServerInfo m = new MessageServerInfo(); | 1033 | MessageServerInfo m = new MessageServerInfo(); |
1031 | m.URI = URI; | 1034 | m.URI = URI; |
1032 | m.sendkey = sendkey; | 1035 | m.sendkey = sendkey; |
@@ -1042,14 +1045,14 @@ namespace OpenSim.Grid.GridServer | |||
1042 | public XmlRpcResponse XmlRPCDeRegisterMessageServer(XmlRpcRequest request) | 1045 | public XmlRpcResponse XmlRPCDeRegisterMessageServer(XmlRpcRequest request) |
1043 | { | 1046 | { |
1044 | XmlRpcResponse response = new XmlRpcResponse(); | 1047 | XmlRpcResponse response = new XmlRpcResponse(); |
1045 | Hashtable requestData = (Hashtable)request.Params[0]; | 1048 | Hashtable requestData = (Hashtable) request.Params[0]; |
1046 | Hashtable responseData = new Hashtable(); | 1049 | Hashtable responseData = new Hashtable(); |
1047 | 1050 | ||
1048 | if (requestData.Contains("uri")) | 1051 | if (requestData.Contains("uri")) |
1049 | { | 1052 | { |
1050 | string URI = (string)requestData["uri"]; | 1053 | string URI = (string) requestData["uri"]; |
1051 | string sendkey = (string)requestData["sendkey"]; | 1054 | string sendkey = (string) requestData["sendkey"]; |
1052 | string recvkey = (string)requestData["recvkey"]; | 1055 | string recvkey = (string) requestData["recvkey"]; |
1053 | MessageServerInfo m = new MessageServerInfo(); | 1056 | MessageServerInfo m = new MessageServerInfo(); |
1054 | m.URI = URI; | 1057 | m.URI = URI; |
1055 | m.sendkey = sendkey; | 1058 | m.sendkey = sendkey; |
@@ -1062,4 +1065,4 @@ namespace OpenSim.Grid.GridServer | |||
1062 | return response; | 1065 | return response; |
1063 | } | 1066 | } |
1064 | } | 1067 | } |
1065 | } | 1068 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/GridServer/GridServerBase.cs b/OpenSim/Grid/GridServer/GridServerBase.cs index 2feaac3..ac33a6c 100644 --- a/OpenSim/Grid/GridServer/GridServerBase.cs +++ b/OpenSim/Grid/GridServer/GridServerBase.cs | |||
@@ -44,6 +44,34 @@ namespace OpenSim.Grid.GridServer | |||
44 | protected GridManager m_gridManager; | 44 | protected GridManager m_gridManager; |
45 | protected List<IGridPlugin> m_plugins = new List<IGridPlugin>(); | 45 | protected List<IGridPlugin> m_plugins = new List<IGridPlugin>(); |
46 | 46 | ||
47 | public GridServerBase() | ||
48 | { | ||
49 | m_console = new ConsoleBase("OpenGrid", this); | ||
50 | MainConsole.Instance = m_console; | ||
51 | } | ||
52 | |||
53 | #region conscmd_callback Members | ||
54 | |||
55 | public override void RunCmd(string cmd, string[] cmdparams) | ||
56 | { | ||
57 | base.RunCmd(cmd, cmdparams); | ||
58 | |||
59 | switch (cmd) | ||
60 | { | ||
61 | case "help": | ||
62 | m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)"); | ||
63 | break; | ||
64 | |||
65 | case "shutdown": | ||
66 | foreach (IGridPlugin plugin in m_plugins) plugin.Close(); | ||
67 | m_console.Close(); | ||
68 | Environment.Exit(0); | ||
69 | break; | ||
70 | } | ||
71 | } | ||
72 | |||
73 | #endregion | ||
74 | |||
47 | public void Work() | 75 | public void Work() |
48 | { | 76 | { |
49 | m_console.Notice("Enter help for a list of commands\n"); | 77 | m_console.Notice("Enter help for a list of commands\n"); |
@@ -54,12 +82,6 @@ namespace OpenSim.Grid.GridServer | |||
54 | } | 82 | } |
55 | } | 83 | } |
56 | 84 | ||
57 | public GridServerBase() | ||
58 | { | ||
59 | m_console = new ConsoleBase("OpenGrid", this); | ||
60 | MainConsole.Instance = m_console; | ||
61 | } | ||
62 | |||
63 | public void managercallback(string cmd) | 85 | public void managercallback(string cmd) |
64 | { | 86 | { |
65 | switch (cmd) | 87 | switch (cmd) |
@@ -83,14 +105,14 @@ namespace OpenSim.Grid.GridServer | |||
83 | 105 | ||
84 | AddHttpHandlers(); | 106 | AddHttpHandlers(); |
85 | 107 | ||
86 | LoadGridPlugins( ); | 108 | LoadGridPlugins(); |
87 | 109 | ||
88 | m_httpServer.Start(); | 110 | m_httpServer.Start(); |
89 | 111 | ||
90 | m_console.Status("[GRID]: Starting sim status checker"); | 112 | m_console.Status("[GRID]: Starting sim status checker"); |
91 | 113 | ||
92 | Timer simCheckTimer = new Timer(3600000 * 3); // 3 Hours between updates. | 114 | Timer simCheckTimer = new Timer(3600000 * 3); // 3 Hours between updates. |
93 | simCheckTimer.Elapsed += new ElapsedEventHandler(CheckSims); | 115 | simCheckTimer.Elapsed += CheckSims; |
94 | simCheckTimer.Enabled = true; | 116 | simCheckTimer.Enabled = true; |
95 | } | 117 | } |
96 | 118 | ||
@@ -122,7 +144,7 @@ namespace OpenSim.Grid.GridServer | |||
122 | foreach (TypeExtensionNode node in nodes) | 144 | foreach (TypeExtensionNode node in nodes) |
123 | { | 145 | { |
124 | m_console.Status("[GRIDPLUGINS]: Loading OpenSim plugin " + node.Path); | 146 | m_console.Status("[GRIDPLUGINS]: Loading OpenSim plugin " + node.Path); |
125 | IGridPlugin plugin = (IGridPlugin)node.CreateInstance(); | 147 | IGridPlugin plugin = (IGridPlugin) node.CreateInstance(); |
126 | plugin.Initialise(this); | 148 | plugin.Initialise(this); |
127 | m_plugins.Add(plugin); | 149 | m_plugins.Add(plugin); |
128 | } | 150 | } |
@@ -177,23 +199,5 @@ namespace OpenSim.Grid.GridServer | |||
177 | } | 199 | } |
178 | */ | 200 | */ |
179 | } | 201 | } |
180 | |||
181 | public override void RunCmd(string cmd, string[] cmdparams) | ||
182 | { | ||
183 | base.RunCmd(cmd, cmdparams); | ||
184 | |||
185 | switch (cmd) | ||
186 | { | ||
187 | case "help": | ||
188 | m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)"); | ||
189 | break; | ||
190 | |||
191 | case "shutdown": | ||
192 | foreach (IGridPlugin plugin in m_plugins) plugin.Close(); | ||
193 | m_console.Close(); | ||
194 | Environment.Exit(0); | ||
195 | break; | ||
196 | } | ||
197 | } | ||
198 | } | 202 | } |
199 | } | 203 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/GridServer/IGridPlugin.cs b/OpenSim/Grid/GridServer/IGridPlugin.cs index fbadfce..40d208c 100644 --- a/OpenSim/Grid/GridServer/IGridPlugin.cs +++ b/OpenSim/Grid/GridServer/IGridPlugin.cs | |||
@@ -38,4 +38,4 @@ namespace OpenSim.Grid.GridServer | |||
38 | void Initialise(GridServerBase gridServer); | 38 | void Initialise(GridServerBase gridServer); |
39 | void Close(); | 39 | void Close(); |
40 | } | 40 | } |
41 | } | 41 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/GridServer/Program.cs b/OpenSim/Grid/GridServer/Program.cs index 6eb4e15..06d8e3d 100644 --- a/OpenSim/Grid/GridServer/Program.cs +++ b/OpenSim/Grid/GridServer/Program.cs | |||
@@ -50,4 +50,4 @@ namespace OpenSim.Grid.GridServer | |||
50 | } | 50 | } |
51 | } | 51 | } |
52 | } | 52 | } |
53 | } | 53 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs b/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs index 1468edd..2b07547 100644 --- a/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs +++ b/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs | |||
@@ -60,4 +60,4 @@ using System.Runtime.InteropServices; | |||
60 | // | 60 | // |
61 | 61 | ||
62 | [assembly : AssemblyVersion("1.0.0.0")] | 62 | [assembly : AssemblyVersion("1.0.0.0")] |
63 | [assembly : AssemblyFileVersion("1.0.0.0")] | 63 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Grid/InventoryServer/GridInventoryService.cs b/OpenSim/Grid/InventoryServer/GridInventoryService.cs index db9a864..c3e3a28 100644 --- a/OpenSim/Grid/InventoryServer/GridInventoryService.cs +++ b/OpenSim/Grid/InventoryServer/GridInventoryService.cs | |||
@@ -40,7 +40,7 @@ namespace OpenSim.Grid.InventoryServer | |||
40 | /// </summary> | 40 | /// </summary> |
41 | public class GridInventoryService : InventoryServiceBase | 41 | public class GridInventoryService : InventoryServiceBase |
42 | { | 42 | { |
43 | private static readonly ILog m_log | 43 | private static readonly ILog m_log |
44 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 44 | = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
46 | public override void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback) | 46 | public override void RequestInventoryForUser(LLUUID userID, InventoryReceiptCallback callback) |
@@ -55,7 +55,7 @@ namespace OpenSim.Grid.InventoryServer | |||
55 | /// <param name="itemsList"></param> | 55 | /// <param name="itemsList"></param> |
56 | /// <returns>true if the inventory was retrieved, false otherwise</returns> | 56 | /// <returns>true if the inventory was retrieved, false otherwise</returns> |
57 | private bool GetUsersInventory(LLUUID userID, out List<InventoryFolderBase> folderList, | 57 | private bool GetUsersInventory(LLUUID userID, out List<InventoryFolderBase> folderList, |
58 | out List<InventoryItemBase> itemsList) | 58 | out List<InventoryItemBase> itemsList) |
59 | { | 59 | { |
60 | List<InventoryFolderBase> allFolders = GetInventorySkeleton(userID); | 60 | List<InventoryFolderBase> allFolders = GetInventorySkeleton(userID); |
61 | List<InventoryItemBase> allItems = new List<InventoryItemBase>(); | 61 | List<InventoryItemBase> allItems = new List<InventoryItemBase>(); |
@@ -109,28 +109,28 @@ namespace OpenSim.Grid.InventoryServer | |||
109 | { | 109 | { |
110 | // uncomment me to simulate an overloaded inventory server | 110 | // uncomment me to simulate an overloaded inventory server |
111 | //Thread.Sleep(20000); | 111 | //Thread.Sleep(20000); |
112 | 112 | ||
113 | LLUUID userID = new LLUUID(rawUserID); | 113 | LLUUID userID = new LLUUID(rawUserID); |
114 | 114 | ||
115 | m_log.InfoFormat("[GRID AGENT INVENTORY]: Processing request for inventory of {0}", userID); | 115 | m_log.InfoFormat("[GRID AGENT INVENTORY]: Processing request for inventory of {0}", userID); |
116 | 116 | ||
117 | InventoryCollection invCollection = new InventoryCollection(); | 117 | InventoryCollection invCollection = new InventoryCollection(); |
118 | 118 | ||
119 | List<InventoryFolderBase> allFolders = GetInventorySkeleton(userID); | 119 | List<InventoryFolderBase> allFolders = GetInventorySkeleton(userID); |
120 | 120 | ||
121 | if (null == allFolders) | 121 | if (null == allFolders) |
122 | { | 122 | { |
123 | m_log.WarnFormat("[GRID AGENT INVENTORY]: No inventory found for user {0}", rawUserID); | 123 | m_log.WarnFormat("[GRID AGENT INVENTORY]: No inventory found for user {0}", rawUserID); |
124 | 124 | ||
125 | return invCollection; | 125 | return invCollection; |
126 | } | 126 | } |
127 | 127 | ||
128 | List<InventoryItemBase> allItems = new List<InventoryItemBase>(); | 128 | List<InventoryItemBase> allItems = new List<InventoryItemBase>(); |
129 | 129 | ||
130 | foreach (InventoryFolderBase folder in allFolders) | 130 | foreach (InventoryFolderBase folder in allFolders) |
131 | { | 131 | { |
132 | List<InventoryItemBase> items = RequestFolderItems(folder.ID); | 132 | List<InventoryItemBase> items = RequestFolderItems(folder.ID); |
133 | 133 | ||
134 | if (items != null) | 134 | if (items != null) |
135 | { | 135 | { |
136 | allItems.InsertRange(0, items); | 136 | allItems.InsertRange(0, items); |
@@ -138,9 +138,9 @@ namespace OpenSim.Grid.InventoryServer | |||
138 | } | 138 | } |
139 | 139 | ||
140 | invCollection.UserID = userID; | 140 | invCollection.UserID = userID; |
141 | invCollection.Folders = allFolders; | 141 | invCollection.Folders = allFolders; |
142 | invCollection.Items = allItems; | 142 | invCollection.Items = allItems; |
143 | 143 | ||
144 | // foreach (InventoryFolderBase folder in invCollection.Folders) | 144 | // foreach (InventoryFolderBase folder in invCollection.Folders) |
145 | // { | 145 | // { |
146 | // m_log.DebugFormat("[GRID AGENT INVENTORY]: Sending back folder {0} {1}", folder.Name, folder.ID); | 146 | // m_log.DebugFormat("[GRID AGENT INVENTORY]: Sending back folder {0} {1}", folder.Name, folder.ID); |
@@ -150,14 +150,14 @@ namespace OpenSim.Grid.InventoryServer | |||
150 | // { | 150 | // { |
151 | // m_log.DebugFormat("[GRID AGENT INVENTORY]: Sending back item {0} {1}, folder {2}", item.Name, item.ID, item.Folder); | 151 | // m_log.DebugFormat("[GRID AGENT INVENTORY]: Sending back item {0} {1}, folder {2}", item.Name, item.ID, item.Folder); |
152 | // } | 152 | // } |
153 | 153 | ||
154 | m_log.InfoFormat( | 154 | m_log.InfoFormat( |
155 | "[GRID AGENT INVENTORY]: Sending back inventory response to user {0} containing {1} folders and {2} items", | 155 | "[GRID AGENT INVENTORY]: Sending back inventory response to user {0} containing {1} folders and {2} items", |
156 | invCollection.UserID, invCollection.Folders.Count, invCollection.Items.Count); | 156 | invCollection.UserID, invCollection.Folders.Count, invCollection.Items.Count); |
157 | 157 | ||
158 | return invCollection; | 158 | return invCollection; |
159 | } | 159 | } |
160 | 160 | ||
161 | /// <summary> | 161 | /// <summary> |
162 | /// Guid to UUID wrapper for same name IInventoryServices method | 162 | /// Guid to UUID wrapper for same name IInventoryServices method |
163 | /// </summary> | 163 | /// </summary> |
@@ -166,10 +166,10 @@ namespace OpenSim.Grid.InventoryServer | |||
166 | public List<InventoryFolderBase> GetInventorySkeleton(Guid rawUserID) | 166 | public List<InventoryFolderBase> GetInventorySkeleton(Guid rawUserID) |
167 | { | 167 | { |
168 | //Thread.Sleep(10000); | 168 | //Thread.Sleep(10000); |
169 | 169 | ||
170 | LLUUID userID = new LLUUID(rawUserID); | 170 | LLUUID userID = new LLUUID(rawUserID); |
171 | return GetInventorySkeleton(userID); | 171 | return GetInventorySkeleton(userID); |
172 | } | 172 | } |
173 | 173 | ||
174 | /// <summary> | 174 | /// <summary> |
175 | /// Create an inventory for the given user. | 175 | /// Create an inventory for the given user. |
@@ -196,11 +196,11 @@ namespace OpenSim.Grid.InventoryServer | |||
196 | { | 196 | { |
197 | MoveFolder(folder); | 197 | MoveFolder(folder); |
198 | } | 198 | } |
199 | 199 | ||
200 | public override void PurgeInventoryFolder(LLUUID userID, InventoryFolderBase folder) | 200 | public override void PurgeInventoryFolder(LLUUID userID, InventoryFolderBase folder) |
201 | { | 201 | { |
202 | PurgeFolder(folder); | 202 | PurgeFolder(folder); |
203 | } | 203 | } |
204 | 204 | ||
205 | public override void AddNewInventoryItem(LLUUID userID, InventoryItemBase item) | 205 | public override void AddNewInventoryItem(LLUUID userID, InventoryItemBase item) |
206 | { | 206 | { |
@@ -230,15 +230,15 @@ namespace OpenSim.Grid.InventoryServer | |||
230 | MoveExistingInventoryFolder(folder); | 230 | MoveExistingInventoryFolder(folder); |
231 | return true; | 231 | return true; |
232 | } | 232 | } |
233 | 233 | ||
234 | public bool PurgeInventoryFolder(InventoryFolderBase folder) | 234 | public bool PurgeInventoryFolder(InventoryFolderBase folder) |
235 | { | 235 | { |
236 | m_log.InfoFormat( | 236 | m_log.InfoFormat( |
237 | "[GRID AGENT INVENTORY]: Purging folder {0} {1} of its contents", folder.Name, folder.ID); | 237 | "[GRID AGENT INVENTORY]: Purging folder {0} {1} of its contents", folder.Name, folder.ID); |
238 | 238 | ||
239 | PurgeInventoryFolder(folder.Owner, folder); | 239 | PurgeInventoryFolder(folder.Owner, folder); |
240 | return true; | 240 | return true; |
241 | } | 241 | } |
242 | 242 | ||
243 | public bool AddInventoryItem(InventoryItemBase item) | 243 | public bool AddInventoryItem(InventoryItemBase item) |
244 | { | 244 | { |
@@ -267,4 +267,4 @@ namespace OpenSim.Grid.InventoryServer | |||
267 | return true; | 267 | return true; |
268 | } | 268 | } |
269 | } | 269 | } |
270 | } | 270 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/InventoryServer/InventoryManager.cs b/OpenSim/Grid/InventoryServer/InventoryManager.cs index 5c65317..350a618 100644 --- a/OpenSim/Grid/InventoryServer/InventoryManager.cs +++ b/OpenSim/Grid/InventoryServer/InventoryManager.cs | |||
@@ -54,7 +54,7 @@ namespace OpenSim.Grid.InventoryServer | |||
54 | Assembly pluginAssembly = Assembly.LoadFrom(FileName); | 54 | Assembly pluginAssembly = Assembly.LoadFrom(FileName); |
55 | 55 | ||
56 | m_log.Info("[" + OpenInventory_Main.LogName + "]: " + | 56 | m_log.Info("[" + OpenInventory_Main.LogName + "]: " + |
57 | "Invenstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces."); | 57 | "Invenstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces."); |
58 | foreach (Type pluginType in pluginAssembly.GetTypes()) | 58 | foreach (Type pluginType in pluginAssembly.GetTypes()) |
59 | { | 59 | { |
60 | if (!pluginType.IsAbstract) | 60 | if (!pluginType.IsAbstract) |
@@ -68,7 +68,7 @@ namespace OpenSim.Grid.InventoryServer | |||
68 | plug.Initialise(dbconnect); | 68 | plug.Initialise(dbconnect); |
69 | _databasePlugin = plug; | 69 | _databasePlugin = plug; |
70 | m_log.Info("[" + OpenInventory_Main.LogName + "]: " + | 70 | m_log.Info("[" + OpenInventory_Main.LogName + "]: " + |
71 | "Invenstorage: Added IInventoryData Interface"); | 71 | "Invenstorage: Added IInventoryData Interface"); |
72 | break; | 72 | break; |
73 | } | 73 | } |
74 | } | 74 | } |
@@ -136,10 +136,12 @@ namespace OpenSim.Grid.InventoryServer | |||
136 | return fixupFolder(inventory.root, null); | 136 | return fixupFolder(inventory.root, null); |
137 | } | 137 | } |
138 | 138 | ||
139 | #region Nested type: GetInventory | ||
140 | |||
139 | public class GetInventory : BaseStreamHandler | 141 | public class GetInventory : BaseStreamHandler |
140 | { | 142 | { |
141 | private SerializableInventory _inventory; | 143 | private readonly SerializableInventory _inventory; |
142 | private InventoryManager _manager; | 144 | private readonly InventoryManager _manager; |
143 | 145 | ||
144 | public GetInventory(InventoryManager manager) | 146 | public GetInventory(InventoryManager manager) |
145 | : base("GET", "/inventory") | 147 | : base("GET", "/inventory") |
@@ -181,7 +183,7 @@ namespace OpenSim.Grid.InventoryServer | |||
181 | { | 183 | { |
182 | byte[] result = new byte[] {}; | 184 | byte[] result = new byte[] {}; |
183 | 185 | ||
184 | string[] parms = path.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries); | 186 | string[] parms = path.Split(new[] {'/'}, StringSplitOptions.RemoveEmptyEntries); |
185 | if (parms.Length > 1) | 187 | if (parms.Length > 1) |
186 | { | 188 | { |
187 | if (string.Compare(parms[1], "library", true) == 0) | 189 | if (string.Compare(parms[1], "library", true) == 0) |
@@ -190,7 +192,7 @@ namespace OpenSim.Grid.InventoryServer | |||
190 | saveInventoryToStream(_inventory, ms); | 192 | saveInventoryToStream(_inventory, ms); |
191 | 193 | ||
192 | result = ms.GetBuffer(); | 194 | result = ms.GetBuffer(); |
193 | Array.Resize<byte>(ref result, (int) ms.Length); | 195 | Array.Resize(ref result, (int) ms.Length); |
194 | } | 196 | } |
195 | else if (string.Compare(parms[1], "user", true) == 0) | 197 | else if (string.Compare(parms[1], "user", true) == 0) |
196 | { | 198 | { |
@@ -203,5 +205,7 @@ namespace OpenSim.Grid.InventoryServer | |||
203 | return result; | 205 | return result; |
204 | } | 206 | } |
205 | } | 207 | } |
208 | |||
209 | #endregion | ||
206 | } | 210 | } |
207 | } | 211 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/InventoryServer/Main.cs b/OpenSim/Grid/InventoryServer/Main.cs index 870997b..453d64d 100644 --- a/OpenSim/Grid/InventoryServer/Main.cs +++ b/OpenSim/Grid/InventoryServer/Main.cs | |||
@@ -40,13 +40,38 @@ namespace OpenSim.Grid.InventoryServer | |||
40 | { | 40 | { |
41 | public class OpenInventory_Main : BaseOpenSimServer, conscmd_callback | 41 | public class OpenInventory_Main : BaseOpenSimServer, conscmd_callback |
42 | { | 42 | { |
43 | public const string LogName = "INVENTORY"; | ||
43 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
44 | 45 | ||
45 | private InventoryManager m_inventoryManager; | ||
46 | private InventoryConfig m_config; | 46 | private InventoryConfig m_config; |
47 | private InventoryManager m_inventoryManager; | ||
47 | private GridInventoryService m_inventoryService; | 48 | private GridInventoryService m_inventoryService; |
48 | 49 | ||
49 | public const string LogName = "INVENTORY"; | 50 | public OpenInventory_Main() |
51 | { | ||
52 | m_console = new ConsoleBase(LogName, this); | ||
53 | MainConsole.Instance = m_console; | ||
54 | } | ||
55 | |||
56 | #region conscmd_callback Members | ||
57 | |||
58 | public override void RunCmd(string cmd, string[] cmdparams) | ||
59 | { | ||
60 | base.RunCmd(cmd, cmdparams); | ||
61 | |||
62 | switch (cmd) | ||
63 | { | ||
64 | case "add-user": | ||
65 | m_inventoryService.CreateUsersInventory(LLUUID.Random().UUID); | ||
66 | break; | ||
67 | case "shutdown": | ||
68 | m_console.Close(); | ||
69 | Environment.Exit(0); | ||
70 | break; | ||
71 | } | ||
72 | } | ||
73 | |||
74 | #endregion | ||
50 | 75 | ||
51 | [STAThread] | 76 | [STAThread] |
52 | public static void Main(string[] args) | 77 | public static void Main(string[] args) |
@@ -59,12 +84,6 @@ namespace OpenSim.Grid.InventoryServer | |||
59 | theServer.Work(); | 84 | theServer.Work(); |
60 | } | 85 | } |
61 | 86 | ||
62 | public OpenInventory_Main() | ||
63 | { | ||
64 | m_console = new ConsoleBase(LogName, this); | ||
65 | MainConsole.Instance = m_console; | ||
66 | } | ||
67 | |||
68 | public void Startup() | 87 | public void Startup() |
69 | { | 88 | { |
70 | m_log.Info("Initialising inventory manager..."); | 89 | m_log.Info("Initialising inventory manager..."); |
@@ -75,7 +94,7 @@ namespace OpenSim.Grid.InventoryServer | |||
75 | m_inventoryService.AddPlugin(m_config.DatabaseProvider, m_config.DatabaseConnect); | 94 | m_inventoryService.AddPlugin(m_config.DatabaseProvider, m_config.DatabaseConnect); |
76 | 95 | ||
77 | m_log.Info("[" + LogName + "]: Starting HTTP server ..."); | 96 | m_log.Info("[" + LogName + "]: Starting HTTP server ..."); |
78 | 97 | ||
79 | m_httpServer = new BaseHttpServer(m_config.HttpPort); | 98 | m_httpServer = new BaseHttpServer(m_config.HttpPort); |
80 | AddHttpHandlers(); | 99 | AddHttpHandlers(); |
81 | m_httpServer.Start(); | 100 | m_httpServer.Start(); |
@@ -88,11 +107,11 @@ namespace OpenSim.Grid.InventoryServer | |||
88 | m_httpServer.AddStreamHandler( | 107 | m_httpServer.AddStreamHandler( |
89 | new RestDeserialisehandler<Guid, InventoryCollection>( | 108 | new RestDeserialisehandler<Guid, InventoryCollection>( |
90 | "POST", "/GetInventory/", m_inventoryService.GetUserInventory)); | 109 | "POST", "/GetInventory/", m_inventoryService.GetUserInventory)); |
91 | 110 | ||
92 | m_httpServer.AddStreamHandler( | 111 | m_httpServer.AddStreamHandler( |
93 | new RestDeserialisehandler<Guid, bool>( | 112 | new RestDeserialisehandler<Guid, bool>( |
94 | "POST", "/CreateInventory/", m_inventoryService.CreateUsersInventory)); | 113 | "POST", "/CreateInventory/", m_inventoryService.CreateUsersInventory)); |
95 | 114 | ||
96 | m_httpServer.AddStreamHandler( | 115 | m_httpServer.AddStreamHandler( |
97 | new RestDeserialisehandler<InventoryFolderBase, bool>( | 116 | new RestDeserialisehandler<InventoryFolderBase, bool>( |
98 | "POST", "/NewFolder/", m_inventoryService.AddInventoryFolder)); | 117 | "POST", "/NewFolder/", m_inventoryService.AddInventoryFolder)); |
@@ -100,15 +119,15 @@ namespace OpenSim.Grid.InventoryServer | |||
100 | m_httpServer.AddStreamHandler( | 119 | m_httpServer.AddStreamHandler( |
101 | new RestDeserialisehandler<InventoryFolderBase, bool>( | 120 | new RestDeserialisehandler<InventoryFolderBase, bool>( |
102 | "POST", "/MoveFolder/", m_inventoryService.MoveInventoryFolder)); | 121 | "POST", "/MoveFolder/", m_inventoryService.MoveInventoryFolder)); |
103 | 122 | ||
104 | m_httpServer.AddStreamHandler( | 123 | m_httpServer.AddStreamHandler( |
105 | new RestDeserialisehandler<InventoryFolderBase, bool>( | 124 | new RestDeserialisehandler<InventoryFolderBase, bool>( |
106 | "POST", "/PurgeFolder/", m_inventoryService.PurgeInventoryFolder)); | 125 | "POST", "/PurgeFolder/", m_inventoryService.PurgeInventoryFolder)); |
107 | 126 | ||
108 | m_httpServer.AddStreamHandler( | 127 | m_httpServer.AddStreamHandler( |
109 | new RestDeserialisehandler<InventoryItemBase, bool>( | 128 | new RestDeserialisehandler<InventoryItemBase, bool>( |
110 | "POST", "/NewItem/", m_inventoryService.AddInventoryItem)); | 129 | "POST", "/NewItem/", m_inventoryService.AddInventoryItem)); |
111 | 130 | ||
112 | m_httpServer.AddStreamHandler( | 131 | m_httpServer.AddStreamHandler( |
113 | new RestDeserialisehandler<InventoryItemBase, bool>( | 132 | new RestDeserialisehandler<InventoryItemBase, bool>( |
114 | "POST", "/DeleteItem/", m_inventoryService.DeleteInvItem)); | 133 | "POST", "/DeleteItem/", m_inventoryService.DeleteInvItem)); |
@@ -134,21 +153,5 @@ namespace OpenSim.Grid.InventoryServer | |||
134 | m_console.Prompt(); | 153 | m_console.Prompt(); |
135 | } | 154 | } |
136 | } | 155 | } |
137 | |||
138 | public override void RunCmd(string cmd, string[] cmdparams) | ||
139 | { | ||
140 | base.RunCmd(cmd, cmdparams); | ||
141 | |||
142 | switch (cmd) | ||
143 | { | ||
144 | case "add-user": | ||
145 | m_inventoryService.CreateUsersInventory(LLUUID.Random().UUID); | ||
146 | break; | ||
147 | case "shutdown": | ||
148 | m_console.Close(); | ||
149 | Environment.Exit(0); | ||
150 | break; | ||
151 | } | ||
152 | } | ||
153 | } | 156 | } |
154 | } | 157 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/MessagingServer/Main.cs b/OpenSim/Grid/MessagingServer/Main.cs index bf793bf..e6e18d4 100644 --- a/OpenSim/Grid/MessagingServer/Main.cs +++ b/OpenSim/Grid/MessagingServer/Main.cs | |||
@@ -44,9 +44,42 @@ namespace OpenSim.Grid.MessagingServer | |||
44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
46 | private MessageServerConfig Cfg; | 46 | private MessageServerConfig Cfg; |
47 | private MessageService msgsvc; | 47 | |
48 | |||
49 | private LLUUID m_lastCreatedUser = LLUUID.Random(); | 48 | private LLUUID m_lastCreatedUser = LLUUID.Random(); |
49 | private MessageService msgsvc; | ||
50 | |||
51 | private OpenMessage_Main() | ||
52 | { | ||
53 | m_console = new ConsoleBase("OpenMessage", this); | ||
54 | MainConsole.Instance = m_console; | ||
55 | } | ||
56 | |||
57 | #region conscmd_callback Members | ||
58 | |||
59 | public override void RunCmd(string cmd, string[] cmdparams) | ||
60 | { | ||
61 | base.RunCmd(cmd, cmdparams); | ||
62 | |||
63 | switch (cmd) | ||
64 | { | ||
65 | case "help": | ||
66 | m_console.Notice("shutdown - shutdown the message server (USE CAUTION!)"); | ||
67 | break; | ||
68 | |||
69 | case "shutdown": | ||
70 | msgsvc.deregisterWithUserServer(); | ||
71 | m_console.Close(); | ||
72 | Environment.Exit(0); | ||
73 | break; | ||
74 | } | ||
75 | } | ||
76 | |||
77 | public override void Show(string ShowWhat) | ||
78 | { | ||
79 | base.Show(ShowWhat); | ||
80 | } | ||
81 | |||
82 | #endregion | ||
50 | 83 | ||
51 | [STAThread] | 84 | [STAThread] |
52 | public static void Main(string[] args) | 85 | public static void Main(string[] args) |
@@ -55,7 +88,6 @@ namespace OpenSim.Grid.MessagingServer | |||
55 | 88 | ||
56 | m_log.Info("Launching MessagingServer..."); | 89 | m_log.Info("Launching MessagingServer..."); |
57 | 90 | ||
58 | |||
59 | 91 | ||
60 | OpenMessage_Main messageserver = new OpenMessage_Main(); | 92 | OpenMessage_Main messageserver = new OpenMessage_Main(); |
61 | 93 | ||
@@ -63,12 +95,6 @@ namespace OpenSim.Grid.MessagingServer | |||
63 | messageserver.Work(); | 95 | messageserver.Work(); |
64 | } | 96 | } |
65 | 97 | ||
66 | private OpenMessage_Main() | ||
67 | { | ||
68 | m_console = new ConsoleBase("OpenMessage", this); | ||
69 | MainConsole.Instance = m_console; | ||
70 | } | ||
71 | |||
72 | private void Work() | 98 | private void Work() |
73 | { | 99 | { |
74 | m_console.Notice("Enter help for a list of commands\n"); | 100 | m_console.Notice("Enter help for a list of commands\n"); |
@@ -118,12 +144,13 @@ namespace OpenSim.Grid.MessagingServer | |||
118 | switch (what) | 144 | switch (what) |
119 | { | 145 | { |
120 | case "user": | 146 | case "user": |
121 | 147 | ||
122 | try | 148 | try |
123 | { | 149 | { |
124 | //userID = | 150 | //userID = |
125 | //m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); | 151 | //m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); |
126 | } catch (Exception ex) | 152 | } |
153 | catch (Exception ex) | ||
127 | { | 154 | { |
128 | m_console.Error("[SERVER]: Error creating user: {0}", ex.ToString()); | 155 | m_console.Error("[SERVER]: Error creating user: {0}", ex.ToString()); |
129 | } | 156 | } |
@@ -131,7 +158,7 @@ namespace OpenSim.Grid.MessagingServer | |||
131 | try | 158 | try |
132 | { | 159 | { |
133 | //RestObjectPoster.BeginPostObject<Guid>(m_userManager._config.InventoryUrl + "CreateInventory/", | 160 | //RestObjectPoster.BeginPostObject<Guid>(m_userManager._config.InventoryUrl + "CreateInventory/", |
134 | //userID.UUID); | 161 | //userID.UUID); |
135 | } | 162 | } |
136 | catch (Exception ex) | 163 | catch (Exception ex) |
137 | { | 164 | { |
@@ -141,28 +168,5 @@ namespace OpenSim.Grid.MessagingServer | |||
141 | break; | 168 | break; |
142 | } | 169 | } |
143 | } | 170 | } |
144 | |||
145 | public override void RunCmd(string cmd, string[] cmdparams) | ||
146 | { | ||
147 | base.RunCmd(cmd, cmdparams); | ||
148 | |||
149 | switch (cmd) | ||
150 | { | ||
151 | case "help": | ||
152 | m_console.Notice("shutdown - shutdown the message server (USE CAUTION!)"); | ||
153 | break; | ||
154 | |||
155 | case "shutdown": | ||
156 | msgsvc.deregisterWithUserServer(); | ||
157 | m_console.Close(); | ||
158 | Environment.Exit(0); | ||
159 | break; | ||
160 | } | ||
161 | } | ||
162 | |||
163 | public override void Show(string ShowWhat) | ||
164 | { | ||
165 | base.Show(ShowWhat); | ||
166 | } | ||
167 | } | 171 | } |
168 | } | 172 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/MessagingServer/MessageService.cs b/OpenSim/Grid/MessagingServer/MessageService.cs index 50e06af..33c133d 100644 --- a/OpenSim/Grid/MessagingServer/MessageService.cs +++ b/OpenSim/Grid/MessagingServer/MessageService.cs | |||
@@ -45,16 +45,16 @@ namespace OpenSim.Grid.MessagingServer | |||
45 | { | 45 | { |
46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 46 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
47 | 47 | ||
48 | private MessageServerConfig m_cfg; | 48 | private readonly MessageServerConfig m_cfg; |
49 | private readonly Hashtable m_presence_BackReferences = new Hashtable(); | ||
49 | 50 | ||
50 | //A hashtable of all current presences this server knows about | 51 | //A hashtable of all current presences this server knows about |
51 | private Hashtable m_presences = new Hashtable(); | 52 | private readonly Hashtable m_presences = new Hashtable(); |
52 | 53 | ||
53 | //a hashtable of all current regions this server knows about | 54 | //a hashtable of all current regions this server knows about |
54 | private Hashtable m_regionInfoCache = new Hashtable(); | 55 | private readonly Hashtable m_regionInfoCache = new Hashtable(); |
55 | 56 | ||
56 | //A hashtable containing lists of UUIDs keyed by UUID for fast backreferencing | 57 | //A hashtable containing lists of UUIDs keyed by UUID for fast backreferencing |
57 | private Hashtable m_presence_BackReferences = new Hashtable(); | ||
58 | 58 | ||
59 | // Hashtable containing work units that need to be processed | 59 | // Hashtable containing work units that need to be processed |
60 | private Hashtable m_unProcessedWorkUnits = new Hashtable(); | 60 | private Hashtable m_unProcessedWorkUnits = new Hashtable(); |
@@ -63,13 +63,13 @@ namespace OpenSim.Grid.MessagingServer | |||
63 | { | 63 | { |
64 | m_cfg = cfg; | 64 | m_cfg = cfg; |
65 | } | 65 | } |
66 | 66 | ||
67 | #region RegionComms Methods | 67 | #region RegionComms Methods |
68 | 68 | ||
69 | #endregion | 69 | #endregion |
70 | 70 | ||
71 | #region FriendList Methods | 71 | #region FriendList Methods |
72 | 72 | ||
73 | /// <summary> | 73 | /// <summary> |
74 | /// Process Friendlist subscriptions for a user | 74 | /// Process Friendlist subscriptions for a user |
75 | /// The login method calls this for a User | 75 | /// The login method calls this for a User |
@@ -87,14 +87,14 @@ namespace OpenSim.Grid.MessagingServer | |||
87 | for (int i = 0; i < uFriendList.Count; i++) | 87 | for (int i = 0; i < uFriendList.Count; i++) |
88 | { | 88 | { |
89 | //m_presence_BackReferences.Add(userpresence.agentData.AgentID, uFriendList[i].Friend); | 89 | //m_presence_BackReferences.Add(userpresence.agentData.AgentID, uFriendList[i].Friend); |
90 | // m_presence_BackReferences.Add(uFriendList[i].Friend, userpresence.agentData.AgentID); | 90 | // m_presence_BackReferences.Add(uFriendList[i].Friend, userpresence.agentData.AgentID); |
91 | 91 | ||
92 | if (m_presences.Contains(uFriendList[i].Friend)) | 92 | if (m_presences.Contains(uFriendList[i].Friend)) |
93 | { | 93 | { |
94 | UserPresenceData friendup = (UserPresenceData)m_presences[uFriendList[i].Friend]; | 94 | UserPresenceData friendup = (UserPresenceData) m_presences[uFriendList[i].Friend]; |
95 | // Add backreference | 95 | // Add backreference |
96 | 96 | ||
97 | SubscribeToPresenceUpdates(userpresence, friendup, uFriendList[i],i); | 97 | SubscribeToPresenceUpdates(userpresence, friendup, uFriendList[i], i); |
98 | } | 98 | } |
99 | } | 99 | } |
100 | } | 100 | } |
@@ -108,10 +108,10 @@ namespace OpenSim.Grid.MessagingServer | |||
108 | /// <param name="friendpresence">P2</param> | 108 | /// <param name="friendpresence">P2</param> |
109 | /// <param name="uFriendListItem"></param> | 109 | /// <param name="uFriendListItem"></param> |
110 | /// <param name="uFriendListIndex"></param> | 110 | /// <param name="uFriendListIndex"></param> |
111 | public void SubscribeToPresenceUpdates(UserPresenceData userpresence, UserPresenceData friendpresence, | 111 | public void SubscribeToPresenceUpdates(UserPresenceData userpresence, UserPresenceData friendpresence, |
112 | FriendListItem uFriendListItem, int uFriendListIndex) | 112 | FriendListItem uFriendListItem, int uFriendListIndex) |
113 | { | 113 | { |
114 | if ((uFriendListItem.FriendListOwnerPerms & (uint)FriendRights.CanSeeOnline) != 0) | 114 | if ((uFriendListItem.FriendListOwnerPerms & (uint) FriendRights.CanSeeOnline) != 0) |
115 | { | 115 | { |
116 | // Subscribe and Send Out updates | 116 | // Subscribe and Send Out updates |
117 | if (!friendpresence.subscriptionData.Contains(friendpresence.agentData.AgentID)) | 117 | if (!friendpresence.subscriptionData.Contains(friendpresence.agentData.AgentID)) |
@@ -126,13 +126,13 @@ namespace OpenSim.Grid.MessagingServer | |||
126 | PresenceInformer friendlistupdater = new PresenceInformer(); | 126 | PresenceInformer friendlistupdater = new PresenceInformer(); |
127 | friendlistupdater.presence1 = friendpresence; | 127 | friendlistupdater.presence1 = friendpresence; |
128 | friendlistupdater.presence2 = userpresence; | 128 | friendlistupdater.presence2 = userpresence; |
129 | WaitCallback cb = new WaitCallback(friendlistupdater.go); | 129 | WaitCallback cb = friendlistupdater.go; |
130 | ThreadPool.QueueUserWorkItem(cb); | 130 | ThreadPool.QueueUserWorkItem(cb); |
131 | 131 | ||
132 | //SendRegionPresenceUpdate(friendpresence, userpresence); | 132 | //SendRegionPresenceUpdate(friendpresence, userpresence); |
133 | } | 133 | } |
134 | 134 | ||
135 | if ((uFriendListItem.FriendPerms & (uint)FriendRights.CanSeeOnline) != 0) | 135 | if ((uFriendListItem.FriendPerms & (uint) FriendRights.CanSeeOnline) != 0) |
136 | { | 136 | { |
137 | if (!friendpresence.subscriptionData.Contains(userpresence.agentData.AgentID)) | 137 | if (!friendpresence.subscriptionData.Contains(userpresence.agentData.AgentID)) |
138 | { | 138 | { |
@@ -147,9 +147,9 @@ namespace OpenSim.Grid.MessagingServer | |||
147 | friendlistupdater.presence1 = userpresence; | 147 | friendlistupdater.presence1 = userpresence; |
148 | friendlistupdater.presence2 = friendpresence; | 148 | friendlistupdater.presence2 = friendpresence; |
149 | 149 | ||
150 | WaitCallback cb2 = new WaitCallback(friendlistupdater.go); | 150 | WaitCallback cb2 = friendlistupdater.go; |
151 | ThreadPool.QueueUserWorkItem(cb2); | 151 | ThreadPool.QueueUserWorkItem(cb2); |
152 | 152 | ||
153 | //SendRegionPresenceUpdate(userpresence, friendpresence); | 153 | //SendRegionPresenceUpdate(userpresence, friendpresence); |
154 | } | 154 | } |
155 | } | 155 | } |
@@ -164,7 +164,7 @@ namespace OpenSim.Grid.MessagingServer | |||
164 | { | 164 | { |
165 | if (m_presence_BackReferences.Contains(friendID)) | 165 | if (m_presence_BackReferences.Contains(friendID)) |
166 | { | 166 | { |
167 | List<LLUUID> presenseBackReferences = (List<LLUUID>)m_presence_BackReferences[friendID]; | 167 | List<LLUUID> presenseBackReferences = (List<LLUUID>) m_presence_BackReferences[friendID]; |
168 | if (!presenseBackReferences.Contains(agentID)) | 168 | if (!presenseBackReferences.Contains(agentID)) |
169 | { | 169 | { |
170 | presenseBackReferences.Add(agentID); | 170 | presenseBackReferences.Add(agentID); |
@@ -188,7 +188,7 @@ namespace OpenSim.Grid.MessagingServer | |||
188 | { | 188 | { |
189 | if (m_presence_BackReferences.Contains(friendID)) | 189 | if (m_presence_BackReferences.Contains(friendID)) |
190 | { | 190 | { |
191 | List<LLUUID> presenseBackReferences = (List<LLUUID>)m_presence_BackReferences[friendID]; | 191 | List<LLUUID> presenseBackReferences = (List<LLUUID>) m_presence_BackReferences[friendID]; |
192 | if (presenseBackReferences.Contains(agentID)) | 192 | if (presenseBackReferences.Contains(agentID)) |
193 | { | 193 | { |
194 | presenseBackReferences.Remove(agentID); | 194 | presenseBackReferences.Remove(agentID); |
@@ -216,29 +216,29 @@ namespace OpenSim.Grid.MessagingServer | |||
216 | { | 216 | { |
217 | if (m_presences.Contains(AgentID)) | 217 | if (m_presences.Contains(AgentID)) |
218 | { | 218 | { |
219 | AgentData = (UserPresenceData)m_presences[AgentID]; | 219 | AgentData = (UserPresenceData) m_presences[AgentID]; |
220 | } | 220 | } |
221 | } | 221 | } |
222 | 222 | ||
223 | if (AgentData != null) | 223 | if (AgentData != null) |
224 | { | 224 | { |
225 | AgentsNeedingNotification = AgentData.subscriptionData; | 225 | AgentsNeedingNotification = AgentData.subscriptionData; |
226 | //lock (m_presence_BackReferences) | 226 | //lock (m_presence_BackReferences) |
227 | //{ | 227 | //{ |
228 | //if (m_presence_BackReferences.Contains(AgentID)) | 228 | //if (m_presence_BackReferences.Contains(AgentID)) |
229 | //{ | 229 | //{ |
230 | //AgentsNeedingNotification = (List<LLUUID>)m_presence_BackReferences[AgentID]; | 230 | //AgentsNeedingNotification = (List<LLUUID>)m_presence_BackReferences[AgentID]; |
231 | //} | 231 | //} |
232 | //} | 232 | //} |
233 | 233 | ||
234 | for (int i = 0; i < AgentsNeedingNotification.Count; i++) | 234 | for (int i = 0; i < AgentsNeedingNotification.Count; i++) |
235 | { | 235 | { |
236 | // TODO: Do Region Notifications | 236 | // TODO: Do Region Notifications |
237 | lock(m_presences) | 237 | lock (m_presences) |
238 | { | 238 | { |
239 | if (m_presences.Contains(AgentsNeedingNotification[i])) | 239 | if (m_presences.Contains(AgentsNeedingNotification[i])) |
240 | { | 240 | { |
241 | friendd = (UserPresenceData)m_presences[AgentsNeedingNotification[i]]; | 241 | friendd = (UserPresenceData) m_presences[AgentsNeedingNotification[i]]; |
242 | } | 242 | } |
243 | } | 243 | } |
244 | 244 | ||
@@ -266,7 +266,7 @@ namespace OpenSim.Grid.MessagingServer | |||
266 | friendlistupdater.presence1 = AgentData; | 266 | friendlistupdater.presence1 = AgentData; |
267 | friendlistupdater.presence2 = friendd; | 267 | friendlistupdater.presence2 = friendd; |
268 | 268 | ||
269 | WaitCallback cb3 = new WaitCallback(friendlistupdater.go); | 269 | WaitCallback cb3 = friendlistupdater.go; |
270 | ThreadPool.QueueUserWorkItem(cb3); | 270 | ThreadPool.QueueUserWorkItem(cb3); |
271 | 271 | ||
272 | //SendRegionPresenceUpdate(AgentData, friendd); | 272 | //SendRegionPresenceUpdate(AgentData, friendd); |
@@ -276,7 +276,7 @@ namespace OpenSim.Grid.MessagingServer | |||
276 | } | 276 | } |
277 | } | 277 | } |
278 | } | 278 | } |
279 | 279 | ||
280 | #endregion | 280 | #endregion |
281 | 281 | ||
282 | #region UserServer Comms | 282 | #region UserServer Comms |
@@ -298,18 +298,17 @@ namespace OpenSim.Grid.MessagingServer | |||
298 | parameters.Add(param); | 298 | parameters.Add(param); |
299 | XmlRpcRequest req = new XmlRpcRequest("get_user_friend_list", parameters); | 299 | XmlRpcRequest req = new XmlRpcRequest("get_user_friend_list", parameters); |
300 | XmlRpcResponse resp = req.Send(m_cfg.UserServerURL, 3000); | 300 | XmlRpcResponse resp = req.Send(m_cfg.UserServerURL, 3000); |
301 | Hashtable respData = (Hashtable)resp.Value; | 301 | Hashtable respData = (Hashtable) resp.Value; |
302 | 302 | ||
303 | if (respData.Contains("avcount")) | 303 | if (respData.Contains("avcount")) |
304 | { | 304 | { |
305 | buddylist = ConvertXMLRPCDataToFriendListItemList(respData); | 305 | buddylist = ConvertXMLRPCDataToFriendListItemList(respData); |
306 | } | 306 | } |
307 | |||
308 | } | 307 | } |
309 | catch (WebException e) | 308 | catch (WebException e) |
310 | { | 309 | { |
311 | m_log.Warn("Error when trying to fetch Avatar's friends list: " + | 310 | m_log.Warn("Error when trying to fetch Avatar's friends list: " + |
312 | e.Message); | 311 | e.Message); |
313 | // Return Empty list (no friends) | 312 | // Return Empty list (no friends) |
314 | } | 313 | } |
315 | return buddylist; | 314 | return buddylist; |
@@ -323,16 +322,16 @@ namespace OpenSim.Grid.MessagingServer | |||
323 | public List<FriendListItem> ConvertXMLRPCDataToFriendListItemList(Hashtable data) | 322 | public List<FriendListItem> ConvertXMLRPCDataToFriendListItemList(Hashtable data) |
324 | { | 323 | { |
325 | List<FriendListItem> buddylist = new List<FriendListItem>(); | 324 | List<FriendListItem> buddylist = new List<FriendListItem>(); |
326 | int buddycount = Convert.ToInt32((string)data["avcount"]); | 325 | int buddycount = Convert.ToInt32((string) data["avcount"]); |
327 | 326 | ||
328 | for (int i = 0; i < buddycount; i++) | 327 | for (int i = 0; i < buddycount; i++) |
329 | { | 328 | { |
330 | FriendListItem buddylistitem = new FriendListItem(); | 329 | FriendListItem buddylistitem = new FriendListItem(); |
331 | 330 | ||
332 | buddylistitem.FriendListOwner = new LLUUID((string)data["ownerID" + i.ToString()]); | 331 | buddylistitem.FriendListOwner = new LLUUID((string) data["ownerID" + i]); |
333 | buddylistitem.Friend = new LLUUID((string)data["friendID" + i.ToString()]); | 332 | buddylistitem.Friend = new LLUUID((string) data["friendID" + i]); |
334 | buddylistitem.FriendListOwnerPerms = (uint)Convert.ToInt32((string)data["ownerPerms" + i.ToString()]); | 333 | buddylistitem.FriendListOwnerPerms = (uint) Convert.ToInt32((string) data["ownerPerms" + i]); |
335 | buddylistitem.FriendPerms = (uint)Convert.ToInt32((string)data["friendPerms" + i.ToString()]); | 334 | buddylistitem.FriendPerms = (uint) Convert.ToInt32((string) data["friendPerms" + i]); |
336 | 335 | ||
337 | buddylist.Add(buddylistitem); | 336 | buddylist.Add(buddylistitem); |
338 | } | 337 | } |
@@ -350,7 +349,7 @@ namespace OpenSim.Grid.MessagingServer | |||
350 | public XmlRpcResponse UserLoggedOn(XmlRpcRequest request) | 349 | public XmlRpcResponse UserLoggedOn(XmlRpcRequest request) |
351 | { | 350 | { |
352 | m_log.Info("[LOGON]: User logged on, building indexes for user"); | 351 | m_log.Info("[LOGON]: User logged on, building indexes for user"); |
353 | Hashtable requestData = (Hashtable)request.Params[0]; | 352 | Hashtable requestData = (Hashtable) request.Params[0]; |
354 | 353 | ||
355 | //requestData["sendkey"] = serv.sendkey; | 354 | //requestData["sendkey"] = serv.sendkey; |
356 | //requestData["agentid"] = agentID.ToString(); | 355 | //requestData["agentid"] = agentID.ToString(); |
@@ -364,13 +363,13 @@ namespace OpenSim.Grid.MessagingServer | |||
364 | //requestData["lastname"] = lastname; | 363 | //requestData["lastname"] = lastname; |
365 | 364 | ||
366 | AgentCircuitData agentData = new AgentCircuitData(); | 365 | AgentCircuitData agentData = new AgentCircuitData(); |
367 | agentData.SessionID = new LLUUID((string)requestData["sessionid"]); | 366 | agentData.SessionID = new LLUUID((string) requestData["sessionid"]); |
368 | agentData.SecureSessionID = new LLUUID((string)requestData["secure_session_id"]); | 367 | agentData.SecureSessionID = new LLUUID((string) requestData["secure_session_id"]); |
369 | agentData.firstname = (string)requestData["firstname"]; | 368 | agentData.firstname = (string) requestData["firstname"]; |
370 | agentData.lastname = (string)requestData["lastname"]; | 369 | agentData.lastname = (string) requestData["lastname"]; |
371 | agentData.AgentID = new LLUUID((string)requestData["agentid"]); | 370 | agentData.AgentID = new LLUUID((string) requestData["agentid"]); |
372 | agentData.circuitcode = Convert.ToUInt32(requestData["circuit_code"]); | 371 | agentData.circuitcode = Convert.ToUInt32(requestData["circuit_code"]); |
373 | agentData.CapsPath = (string)requestData["caps_path"]; | 372 | agentData.CapsPath = (string) requestData["caps_path"]; |
374 | 373 | ||
375 | if (requestData.ContainsKey("child_agent") && requestData["child_agent"].Equals("1")) | 374 | if (requestData.ContainsKey("child_agent") && requestData["child_agent"].Equals("1")) |
376 | { | 375 | { |
@@ -379,13 +378,13 @@ namespace OpenSim.Grid.MessagingServer | |||
379 | else | 378 | else |
380 | { | 379 | { |
381 | agentData.startpos = | 380 | agentData.startpos = |
382 | new LLVector3(Convert.ToUInt32(requestData["positionx"]), | 381 | new LLVector3(Convert.ToUInt32(requestData["positionx"]), |
383 | Convert.ToUInt32(requestData["positiony"]), | 382 | Convert.ToUInt32(requestData["positiony"]), |
384 | Convert.ToUInt32(requestData["positionz"])); | 383 | Convert.ToUInt32(requestData["positionz"])); |
385 | agentData.child = false; | 384 | agentData.child = false; |
386 | } | 385 | } |
387 | 386 | ||
388 | ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]); | 387 | ulong regionHandle = Convert.ToUInt64((string) requestData["regionhandle"]); |
389 | 388 | ||
390 | UserPresenceData up = new UserPresenceData(); | 389 | UserPresenceData up = new UserPresenceData(); |
391 | up.agentData = agentData; | 390 | up.agentData = agentData; |
@@ -398,7 +397,7 @@ namespace OpenSim.Grid.MessagingServer | |||
398 | 397 | ||
399 | return new XmlRpcResponse(); | 398 | return new XmlRpcResponse(); |
400 | } | 399 | } |
401 | 400 | ||
402 | /// <summary> | 401 | /// <summary> |
403 | /// The UserServer got a Logoff message | 402 | /// The UserServer got a Logoff message |
404 | /// Cleanup time for that user. Send out presence notifications | 403 | /// Cleanup time for that user. Send out presence notifications |
@@ -407,9 +406,9 @@ namespace OpenSim.Grid.MessagingServer | |||
407 | /// <returns></returns> | 406 | /// <returns></returns> |
408 | public XmlRpcResponse UserLoggedOff(XmlRpcRequest request) | 407 | public XmlRpcResponse UserLoggedOff(XmlRpcRequest request) |
409 | { | 408 | { |
410 | Hashtable requestData = (Hashtable)request.Params[0]; | 409 | Hashtable requestData = (Hashtable) request.Params[0]; |
411 | 410 | ||
412 | LLUUID AgentID = new LLUUID((string)requestData["agentid"]); | 411 | LLUUID AgentID = new LLUUID((string) requestData["agentid"]); |
413 | 412 | ||
414 | ProcessLogOff(AgentID); | 413 | ProcessLogOff(AgentID); |
415 | 414 | ||
@@ -431,9 +430,9 @@ namespace OpenSim.Grid.MessagingServer | |||
431 | RegionProfileData regionInfo = null; | 430 | RegionProfileData regionInfo = null; |
432 | if (m_regionInfoCache.Contains(regionhandle)) | 431 | if (m_regionInfoCache.Contains(regionhandle)) |
433 | { | 432 | { |
434 | regionInfo = (RegionProfileData)m_regionInfoCache[regionhandle]; | 433 | regionInfo = (RegionProfileData) m_regionInfoCache[regionhandle]; |
435 | } | 434 | } |
436 | else | 435 | else |
437 | { | 436 | { |
438 | regionInfo = RequestRegionInfo(regionhandle); | 437 | regionInfo = RequestRegionInfo(regionhandle); |
439 | } | 438 | } |
@@ -447,7 +446,8 @@ namespace OpenSim.Grid.MessagingServer | |||
447 | /// <param name="regionHandle"></param> | 446 | /// <param name="regionHandle"></param> |
448 | /// <returns></returns> | 447 | /// <returns></returns> |
449 | public RegionProfileData RequestRegionInfo(ulong regionHandle) | 448 | public RegionProfileData RequestRegionInfo(ulong regionHandle) |
450 | { RegionProfileData regionProfile = null; | 449 | { |
450 | RegionProfileData regionProfile = null; | ||
451 | try | 451 | try |
452 | { | 452 | { |
453 | Hashtable requestData = new Hashtable(); | 453 | Hashtable requestData = new Hashtable(); |
@@ -457,8 +457,8 @@ namespace OpenSim.Grid.MessagingServer | |||
457 | SendParams.Add(requestData); | 457 | SendParams.Add(requestData); |
458 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams); | 458 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams); |
459 | XmlRpcResponse GridResp = GridReq.Send(m_cfg.GridServerURL, 3000); | 459 | XmlRpcResponse GridResp = GridReq.Send(m_cfg.GridServerURL, 3000); |
460 | 460 | ||
461 | Hashtable responseData = (Hashtable)GridResp.Value; | 461 | Hashtable responseData = (Hashtable) GridResp.Value; |
462 | 462 | ||
463 | if (responseData.ContainsKey("error")) | 463 | if (responseData.ContainsKey("error")) |
464 | { | 464 | { |
@@ -466,23 +466,23 @@ namespace OpenSim.Grid.MessagingServer | |||
466 | return null; | 466 | return null; |
467 | } | 467 | } |
468 | 468 | ||
469 | uint regX = Convert.ToUInt32((string)responseData["region_locx"]); | 469 | uint regX = Convert.ToUInt32((string) responseData["region_locx"]); |
470 | uint regY = Convert.ToUInt32((string)responseData["region_locy"]); | 470 | uint regY = Convert.ToUInt32((string) responseData["region_locy"]); |
471 | string internalIpStr = (string)responseData["sim_ip"]; | 471 | string internalIpStr = (string) responseData["sim_ip"]; |
472 | uint port = Convert.ToUInt32(responseData["sim_port"]); | 472 | uint port = Convert.ToUInt32(responseData["sim_port"]); |
473 | string externalUri = (string)responseData["sim_uri"]; | 473 | string externalUri = (string) responseData["sim_uri"]; |
474 | string neighbourExternalUri = externalUri; | 474 | string neighbourExternalUri = externalUri; |
475 | 475 | ||
476 | regionProfile = new RegionProfileData(); | 476 | regionProfile = new RegionProfileData(); |
477 | regionProfile.httpPort = (uint)Convert.ToInt32((string)responseData["http_port"]); | 477 | regionProfile.httpPort = (uint) Convert.ToInt32((string) responseData["http_port"]); |
478 | regionProfile.httpServerURI = "http://" + internalIpStr + ":" + regionProfile.httpPort + "/"; | 478 | regionProfile.httpServerURI = "http://" + internalIpStr + ":" + regionProfile.httpPort + "/"; |
479 | regionProfile.regionHandle = Helpers.UIntsToLong((regX * Constants.RegionSize), (regY * Constants.RegionSize)); | 479 | regionProfile.regionHandle = Helpers.UIntsToLong((regX * Constants.RegionSize), (regY * Constants.RegionSize)); |
480 | regionProfile.regionLocX = regX; | 480 | regionProfile.regionLocX = regX; |
481 | regionProfile.regionLocY = regY; | 481 | regionProfile.regionLocY = regY; |
482 | 482 | ||
483 | regionProfile.remotingPort = Convert.ToUInt32((string)responseData["remoting_port"]); | 483 | regionProfile.remotingPort = Convert.ToUInt32((string) responseData["remoting_port"]); |
484 | regionProfile.UUID = new LLUUID((string)responseData["region_UUID"]); | 484 | regionProfile.UUID = new LLUUID((string) responseData["region_UUID"]); |
485 | regionProfile.regionName = (string)responseData["region_name"]; | 485 | regionProfile.regionName = (string) responseData["region_name"]; |
486 | lock (m_regionInfoCache) | 486 | lock (m_regionInfoCache) |
487 | { | 487 | { |
488 | if (!m_regionInfoCache.Contains(regionHandle)) | 488 | if (!m_regionInfoCache.Contains(regionHandle)) |
@@ -494,31 +494,31 @@ namespace OpenSim.Grid.MessagingServer | |||
494 | catch (WebException) | 494 | catch (WebException) |
495 | { | 495 | { |
496 | m_log.Error("[GRID]: " + | 496 | m_log.Error("[GRID]: " + |
497 | "Region lookup failed for: " + regionHandle.ToString() + | 497 | "Region lookup failed for: " + regionHandle + |
498 | " - Is the GridServer down?"); | 498 | " - Is the GridServer down?"); |
499 | return null; | 499 | return null; |
500 | } | 500 | } |
501 | 501 | ||
502 | return regionProfile; | 502 | return regionProfile; |
503 | } | 503 | } |
504 | 504 | ||
505 | public bool registerWithUserServer () | 505 | public bool registerWithUserServer() |
506 | { | 506 | { |
507 | Hashtable UserParams = new Hashtable(); | 507 | Hashtable UserParams = new Hashtable(); |
508 | // Login / Authentication | 508 | // Login / Authentication |
509 | 509 | ||
510 | if (m_cfg.HttpSSL) | 510 | if (m_cfg.HttpSSL) |
511 | { | 511 | { |
512 | UserParams["uri"] = "https://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; | 512 | UserParams["uri"] = "https://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; |
513 | } | 513 | } |
514 | else | 514 | else |
515 | { | 515 | { |
516 | UserParams["uri"] = "http://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; | 516 | UserParams["uri"] = "http://" + m_cfg.MessageServerIP + ":" + m_cfg.HttpPort; |
517 | } | 517 | } |
518 | 518 | ||
519 | UserParams["recvkey"] = m_cfg.UserRecvKey; | 519 | UserParams["recvkey"] = m_cfg.UserRecvKey; |
520 | UserParams["sendkey"] = m_cfg.UserRecvKey; | 520 | UserParams["sendkey"] = m_cfg.UserRecvKey; |
521 | 521 | ||
522 | // Package into an XMLRPC Request | 522 | // Package into an XMLRPC Request |
523 | ArrayList SendParams = new ArrayList(); | 523 | ArrayList SendParams = new ArrayList(); |
524 | SendParams.Add(UserParams); | 524 | SendParams.Add(UserParams); |
@@ -530,12 +530,13 @@ namespace OpenSim.Grid.MessagingServer | |||
530 | { | 530 | { |
531 | UserReq = new XmlRpcRequest("register_messageserver", SendParams); | 531 | UserReq = new XmlRpcRequest("register_messageserver", SendParams); |
532 | UserResp = UserReq.Send(m_cfg.UserServerURL, 16000); | 532 | UserResp = UserReq.Send(m_cfg.UserServerURL, 16000); |
533 | } catch (Exception ex) | 533 | } |
534 | catch (Exception ex) | ||
534 | { | 535 | { |
535 | m_log.Error("Unable to connect to grid. Grid server not running?"); | 536 | m_log.Error("Unable to connect to grid. Grid server not running?"); |
536 | throw(ex); | 537 | throw (ex); |
537 | } | 538 | } |
538 | Hashtable GridRespData = (Hashtable)UserResp.Value; | 539 | Hashtable GridRespData = (Hashtable) UserResp.Value; |
539 | Hashtable griddatahash = GridRespData; | 540 | Hashtable griddatahash = GridRespData; |
540 | 541 | ||
541 | // Process Response | 542 | // Process Response |
@@ -583,7 +584,7 @@ namespace OpenSim.Grid.MessagingServer | |||
583 | m_log.Error("Unable to connect to grid. Grid server not running?"); | 584 | m_log.Error("Unable to connect to grid. Grid server not running?"); |
584 | throw (ex); | 585 | throw (ex); |
585 | } | 586 | } |
586 | Hashtable UserRespData = (Hashtable)UserResp.Value; | 587 | Hashtable UserRespData = (Hashtable) UserResp.Value; |
587 | Hashtable userdatahash = UserRespData; | 588 | Hashtable userdatahash = UserRespData; |
588 | 589 | ||
589 | // Process Response | 590 | // Process Response |
@@ -599,4 +600,4 @@ namespace OpenSim.Grid.MessagingServer | |||
599 | 600 | ||
600 | #endregion | 601 | #endregion |
601 | } | 602 | } |
602 | } | 603 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/MessagingServer/PresenceInformer.cs b/OpenSim/Grid/MessagingServer/PresenceInformer.cs index 59d0e13..dd2fa5b 100644 --- a/OpenSim/Grid/MessagingServer/PresenceInformer.cs +++ b/OpenSim/Grid/MessagingServer/PresenceInformer.cs | |||
@@ -35,21 +35,16 @@ namespace OpenSim.Grid.MessagingServer | |||
35 | { | 35 | { |
36 | public class PresenceInformer | 36 | public class PresenceInformer |
37 | { | 37 | { |
38 | public UserPresenceData presence1 = null; | ||
39 | public UserPresenceData presence2 = null; | ||
40 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 38 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
39 | public UserPresenceData presence1; | ||
40 | public UserPresenceData presence2; | ||
41 | 41 | ||
42 | public PresenceInformer() | ||
43 | { | ||
44 | |||
45 | } | ||
46 | public void go(object o) | 42 | public void go(object o) |
47 | { | 43 | { |
48 | if (presence1 != null && presence2 != null) | 44 | if (presence1 != null && presence2 != null) |
49 | { | 45 | { |
50 | SendRegionPresenceUpdate(presence1, presence2); | 46 | SendRegionPresenceUpdate(presence1, presence2); |
51 | } | 47 | } |
52 | |||
53 | } | 48 | } |
54 | 49 | ||
55 | /// <summary> | 50 | /// <summary> |
@@ -74,4 +69,4 @@ namespace OpenSim.Grid.MessagingServer | |||
74 | XmlRpcResponse RegionResp = RegionReq.Send(whichRegion.httpServerURI, 6000); | 69 | XmlRpcResponse RegionResp = RegionReq.Send(whichRegion.httpServerURI, 6000); |
75 | } | 70 | } |
76 | } | 71 | } |
77 | } | 72 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/MessagingServer/UserPresenceData.cs b/OpenSim/Grid/MessagingServer/UserPresenceData.cs index 7188201..790e999 100644 --- a/OpenSim/Grid/MessagingServer/UserPresenceData.cs +++ b/OpenSim/Grid/MessagingServer/UserPresenceData.cs | |||
@@ -36,13 +36,9 @@ namespace OpenSim.Grid.MessagingServer | |||
36 | public class UserPresenceData | 36 | public class UserPresenceData |
37 | { | 37 | { |
38 | public AgentCircuitData agentData = new AgentCircuitData(); | 38 | public AgentCircuitData agentData = new AgentCircuitData(); |
39 | public RegionProfileData regionData = new RegionProfileData(); | 39 | public List<FriendListItem> friendData = new List<FriendListItem>(); |
40 | public string httpURI = String.Empty; | 40 | public string httpURI = String.Empty; |
41 | public List<FriendListItem> friendData = new List<FriendListItem> (); | 41 | public RegionProfileData regionData = new RegionProfileData(); |
42 | public List<LLUUID> subscriptionData = new List<LLUUID>(); | 42 | public List<LLUUID> subscriptionData = new List<LLUUID>(); |
43 | |||
44 | public UserPresenceData() | ||
45 | { | ||
46 | } | ||
47 | } | 43 | } |
48 | } | 44 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/MessagingServer/WorkUnitBase.cs b/OpenSim/Grid/MessagingServer/WorkUnitBase.cs index d25f044..1c1503b 100644 --- a/OpenSim/Grid/MessagingServer/WorkUnitBase.cs +++ b/OpenSim/Grid/MessagingServer/WorkUnitBase.cs | |||
@@ -30,4 +30,4 @@ namespace OpenSim.Grid.MessagingServer | |||
30 | public class WorkUnitBase | 30 | public class WorkUnitBase |
31 | { | 31 | { |
32 | } | 32 | } |
33 | } | 33 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/MessagingServer/WorkUnitPresenceUpdate.cs b/OpenSim/Grid/MessagingServer/WorkUnitPresenceUpdate.cs index c31f0c7..625a9f6 100644 --- a/OpenSim/Grid/MessagingServer/WorkUnitPresenceUpdate.cs +++ b/OpenSim/Grid/MessagingServer/WorkUnitPresenceUpdate.cs | |||
@@ -30,4 +30,4 @@ namespace OpenSim.Grid.MessagingServer | |||
30 | public class WorkUnitPresenceUpdate : WorkUnitBase | 30 | public class WorkUnitPresenceUpdate : WorkUnitBase |
31 | { | 31 | { |
32 | } | 32 | } |
33 | } | 33 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/MessagingServer/XMPPHTTPService.cs b/OpenSim/Grid/MessagingServer/XMPPHTTPService.cs index df3bc22..257e802 100644 --- a/OpenSim/Grid/MessagingServer/XMPPHTTPService.cs +++ b/OpenSim/Grid/MessagingServer/XMPPHTTPService.cs | |||
@@ -48,28 +48,26 @@ namespace OpenSim.Grid.MessagingServer | |||
48 | : base("GET", "/presence") | 48 | : base("GET", "/presence") |
49 | { | 49 | { |
50 | m_log.Info("[REST]: In Get Request"); | 50 | m_log.Info("[REST]: In Get Request"); |
51 | |||
52 | } | 51 | } |
53 | 52 | ||
54 | public override byte[] Handle(string path, Stream request) | 53 | public override byte[] Handle(string path, Stream request) |
55 | { | 54 | { |
56 | string param = GetParam(path); | 55 | string param = GetParam(path); |
57 | byte[] result = new byte[] {}; | 56 | byte[] result = new byte[] {}; |
58 | try | 57 | try |
59 | { | 58 | { |
60 | string[] p = param.Split(new char[] {'/', '?', '&'}, StringSplitOptions.RemoveEmptyEntries); | 59 | string[] p = param.Split(new[] {'/', '?', '&'}, StringSplitOptions.RemoveEmptyEntries); |
61 | 60 | ||
62 | if (p.Length > 0) | 61 | if (p.Length > 0) |
63 | { | 62 | { |
64 | LLUUID assetID = null; | 63 | LLUUID assetID = null; |
65 | 64 | ||
66 | if (!LLUUID.TryParse(p[0], out assetID)) | 65 | if (!LLUUID.TryParse(p[0], out assetID)) |
67 | { | 66 | { |
68 | m_log.InfoFormat( | 67 | m_log.InfoFormat( |
69 | "[REST]: GET:/presence ignoring request with malformed UUID {0}", p[0]); | 68 | "[REST]: GET:/presence ignoring request with malformed UUID {0}", p[0]); |
70 | return result; | 69 | return result; |
71 | } | 70 | } |
72 | |||
73 | } | 71 | } |
74 | } | 72 | } |
75 | catch (Exception e) | 73 | catch (Exception e) |
@@ -84,6 +82,11 @@ namespace OpenSim.Grid.MessagingServer | |||
84 | { | 82 | { |
85 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 83 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
86 | 84 | ||
85 | public PostXMPPStreamHandler() | ||
86 | : base("POST", "/presence") | ||
87 | { | ||
88 | } | ||
89 | |||
87 | public override byte[] Handle(string path, Stream request) | 90 | public override byte[] Handle(string path, Stream request) |
88 | { | 91 | { |
89 | string param = GetParam(path); | 92 | string param = GetParam(path); |
@@ -97,12 +100,5 @@ namespace OpenSim.Grid.MessagingServer | |||
97 | 100 | ||
98 | return new byte[] {}; | 101 | return new byte[] {}; |
99 | } | 102 | } |
100 | |||
101 | public PostXMPPStreamHandler() | ||
102 | : base("POST", "/presence") | ||
103 | { | ||
104 | |||
105 | } | ||
106 | |||
107 | } | 103 | } |
108 | } | 104 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/Application.cs b/OpenSim/Grid/ScriptServer/Application.cs index ef93f65..dc0bf62 100644 --- a/OpenSim/Grid/ScriptServer/Application.cs +++ b/OpenSim/Grid/ScriptServer/Application.cs | |||
@@ -39,7 +39,7 @@ namespace OpenSim.Grid.ScriptServer | |||
39 | XmlConfigurator.Configure(); | 39 | XmlConfigurator.Configure(); |
40 | 40 | ||
41 | AppDomain.CurrentDomain.UnhandledException += | 41 | AppDomain.CurrentDomain.UnhandledException += |
42 | new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); | 42 | CurrentDomain_UnhandledException; |
43 | 43 | ||
44 | // Application is starting | 44 | // Application is starting |
45 | SE = new ScriptServerMain(); | 45 | SE = new ScriptServerMain(); |
@@ -50,9 +50,9 @@ namespace OpenSim.Grid.ScriptServer | |||
50 | Console.WriteLine(String.Empty); | 50 | Console.WriteLine(String.Empty); |
51 | Console.WriteLine("APPLICATION EXCEPTION DETECTED"); | 51 | Console.WriteLine("APPLICATION EXCEPTION DETECTED"); |
52 | Console.WriteLine(String.Empty); | 52 | Console.WriteLine(String.Empty); |
53 | Console.WriteLine("Application is terminating: " + e.IsTerminating.ToString()); | 53 | Console.WriteLine("Application is terminating: " + e.IsTerminating); |
54 | //Console.WriteLine("Exception:"); | 54 | //Console.WriteLine("Exception:"); |
55 | //Console.WriteLine(e.ExceptionObject.ToString()); | 55 | //Console.WriteLine(e.ExceptionObject.ToString()); |
56 | } | 56 | } |
57 | } | 57 | } |
58 | } | 58 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/FakeScene.cs b/OpenSim/Grid/ScriptServer/FakeScene.cs index 480050d..e037698 100644 --- a/OpenSim/Grid/ScriptServer/FakeScene.cs +++ b/OpenSim/Grid/ScriptServer/FakeScene.cs | |||
@@ -34,7 +34,7 @@ using OpenSim.Region.Environment.Scenes; | |||
34 | 34 | ||
35 | namespace OpenSim.Grid.ScriptServer | 35 | namespace OpenSim.Grid.ScriptServer |
36 | { | 36 | { |
37 | public class FakeScene: Scene | 37 | public class FakeScene : Scene |
38 | { | 38 | { |
39 | public FakeScene(RegionInfo regInfo, AgentCircuitManager authen, PermissionManager permissionManager, | 39 | public FakeScene(RegionInfo regInfo, AgentCircuitManager authen, PermissionManager permissionManager, |
40 | CommunicationsManager commsMan, SceneCommunicationService sceneGridService, | 40 | CommunicationsManager commsMan, SceneCommunicationService sceneGridService, |
@@ -48,4 +48,4 @@ namespace OpenSim.Grid.ScriptServer | |||
48 | 48 | ||
49 | // What does a scene have to do? :P | 49 | // What does a scene have to do? :P |
50 | } | 50 | } |
51 | } | 51 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/Properties/AssemblyInfo.cs b/OpenSim/Grid/ScriptServer/Properties/AssemblyInfo.cs index e4161d3..bb33e02 100644 --- a/OpenSim/Grid/ScriptServer/Properties/AssemblyInfo.cs +++ b/OpenSim/Grid/ScriptServer/Properties/AssemblyInfo.cs | |||
@@ -60,4 +60,4 @@ using System.Runtime.InteropServices; | |||
60 | // | 60 | // |
61 | 61 | ||
62 | [assembly : AssemblyVersion("1.0.0.0")] | 62 | [assembly : AssemblyVersion("1.0.0.0")] |
63 | [assembly : AssemblyFileVersion("1.0.0.0")] | 63 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/RemotingObject.cs b/OpenSim/Grid/ScriptServer/RemotingObject.cs index 9d3065b..6686b26 100644 --- a/OpenSim/Grid/ScriptServer/RemotingObject.cs +++ b/OpenSim/Grid/ScriptServer/RemotingObject.cs | |||
@@ -34,9 +34,13 @@ namespace OpenSim.Grid.ScriptServer | |||
34 | { | 34 | { |
35 | // This object will be exposed over remoting. It is a singleton, so it exists only in as one instance. | 35 | // This object will be exposed over remoting. It is a singleton, so it exists only in as one instance. |
36 | 36 | ||
37 | #region ServerRemotingObject Members | ||
38 | |||
37 | ScriptServerInterfaces.RemoteEvents ScriptServerInterfaces.ServerRemotingObject.Events() | 39 | ScriptServerInterfaces.RemoteEvents ScriptServerInterfaces.ServerRemotingObject.Events() |
38 | { | 40 | { |
39 | return ScriptServerMain.Engine.EventManager(); | 41 | return ScriptServerMain.Engine.EventManager(); |
40 | } | 42 | } |
43 | |||
44 | #endregion | ||
41 | } | 45 | } |
42 | } | 46 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/RemotingServer.cs b/OpenSim/Grid/ScriptServer/RemotingServer.cs index 7d0e334..9d75a83 100644 --- a/OpenSim/Grid/ScriptServer/RemotingServer.cs +++ b/OpenSim/Grid/ScriptServer/RemotingServer.cs | |||
@@ -31,9 +31,10 @@ using System.Runtime.Remoting.Channels.Tcp; | |||
31 | 31 | ||
32 | namespace OpenSim.Grid.ScriptServer | 32 | namespace OpenSim.Grid.ScriptServer |
33 | { | 33 | { |
34 | class RemotingServer | 34 | internal class RemotingServer |
35 | { | 35 | { |
36 | TcpChannel channel; | 36 | private readonly TcpChannel channel; |
37 | |||
37 | public RemotingServer(int port, string instanceName) | 38 | public RemotingServer(int port, string instanceName) |
38 | { | 39 | { |
39 | // Create an instance of a channel | 40 | // Create an instance of a channel |
@@ -42,9 +43,9 @@ namespace OpenSim.Grid.ScriptServer | |||
42 | 43 | ||
43 | // Register as an available service with the name HelloWorld | 44 | // Register as an available service with the name HelloWorld |
44 | RemotingConfiguration.RegisterWellKnownServiceType( | 45 | RemotingConfiguration.RegisterWellKnownServiceType( |
45 | typeof(RemotingObject), | 46 | typeof (RemotingObject), |
46 | instanceName, | 47 | instanceName, |
47 | WellKnownObjectMode.Singleton); | 48 | WellKnownObjectMode.Singleton); |
48 | } | 49 | } |
49 | } | 50 | } |
50 | } | 51 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionBase.cs b/OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionBase.cs index a02429c..4f9f2e7 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionBase.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionBase.cs | |||
@@ -32,8 +32,13 @@ namespace OpenSim.Grid.ScriptServer.ScriptServer.Region | |||
32 | // These are events that the region needs to have | 32 | // These are events that the region needs to have |
33 | 33 | ||
34 | // TEMP: Using System.Delegate -- needs replacing with a real delegate | 34 | // TEMP: Using System.Delegate -- needs replacing with a real delegate |
35 | |||
36 | #region Delegates | ||
37 | |||
35 | public delegate void DefaultDelegate(); | 38 | public delegate void DefaultDelegate(); |
36 | 39 | ||
40 | #endregion | ||
41 | |||
37 | public event DefaultDelegate onScriptRez; | 42 | public event DefaultDelegate onScriptRez; |
38 | public event DefaultDelegate onstate_entry; | 43 | public event DefaultDelegate onstate_entry; |
39 | public event DefaultDelegate onstate_exit; | 44 | public event DefaultDelegate onstate_exit; |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionConnectionManager.cs b/OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionConnectionManager.cs index 8c31b9b..3c20272 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionConnectionManager.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServer/Region/RegionConnectionManager.cs | |||
@@ -29,8 +29,8 @@ namespace OpenSim.Grid.ScriptServer.ScriptServer.Region | |||
29 | { | 29 | { |
30 | public class RegionConnectionManager : RegionBase | 30 | public class RegionConnectionManager : RegionBase |
31 | { | 31 | { |
32 | private ScriptServerMain m_ScriptServerMain; | ||
33 | private object m_Connection; | 32 | private object m_Connection; |
33 | private ScriptServerMain m_ScriptServerMain; | ||
34 | 34 | ||
35 | public RegionConnectionManager(ScriptServerMain scm, object Connection) | 35 | public RegionConnectionManager(ScriptServerMain scm, object Connection) |
36 | { | 36 | { |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServer/RegionCommManager.cs b/OpenSim/Grid/ScriptServer/ScriptServer/RegionCommManager.cs index 8422bea..c1449bf 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServer/RegionCommManager.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServer/RegionCommManager.cs | |||
@@ -34,12 +34,10 @@ namespace OpenSim.Grid.ScriptServer.ScriptServer | |||
34 | { | 34 | { |
35 | internal class RegionCommManager | 35 | internal class RegionCommManager |
36 | { | 36 | { |
37 | private readonly ScriptServerMain m_ScriptServerMain; | ||
38 | private readonly List<RegionConnectionManager> Regions = new List<RegionConnectionManager>(); | ||
37 | private Thread listenThread; | 39 | private Thread listenThread; |
38 | 40 | ||
39 | private List<RegionConnectionManager> Regions = new List<RegionConnectionManager>(); | ||
40 | |||
41 | private ScriptServerMain m_ScriptServerMain; | ||
42 | |||
43 | public RegionCommManager(ScriptServerMain scm) | 41 | public RegionCommManager(ScriptServerMain scm) |
44 | { | 42 | { |
45 | m_ScriptServerMain = scm; | 43 | m_ScriptServerMain = scm; |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineLoader.cs b/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineLoader.cs index 4d8c559..dce92ce 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineLoader.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineLoader.cs | |||
@@ -51,7 +51,7 @@ namespace OpenSim.Grid.ScriptServer.ScriptServer | |||
51 | { | 51 | { |
52 | m_log.Error("[ScriptEngine]: " + | 52 | m_log.Error("[ScriptEngine]: " + |
53 | "Error loading assembly \"" + EngineName + "\": " + e.Message + ", " + | 53 | "Error loading assembly \"" + EngineName + "\": " + e.Message + ", " + |
54 | e.StackTrace.ToString()); | 54 | e.StackTrace); |
55 | } | 55 | } |
56 | return ret; | 56 | return ret; |
57 | } | 57 | } |
@@ -104,7 +104,7 @@ namespace OpenSim.Grid.ScriptServer.ScriptServer | |||
104 | ScriptServerInterfaces.ScriptEngine ret; | 104 | ScriptServerInterfaces.ScriptEngine ret; |
105 | //try | 105 | //try |
106 | //{ | 106 | //{ |
107 | ret = (ScriptServerInterfaces.ScriptEngine)Activator.CreateInstance(t); | 107 | ret = (ScriptServerInterfaces.ScriptEngine) Activator.CreateInstance(t); |
108 | //} | 108 | //} |
109 | //catch (Exception e) | 109 | //catch (Exception e) |
110 | //{ | 110 | //{ |
@@ -114,4 +114,4 @@ namespace OpenSim.Grid.ScriptServer.ScriptServer | |||
114 | return ret; | 114 | return ret; |
115 | } | 115 | } |
116 | } | 116 | } |
117 | } | 117 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEnginesManager.cs b/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEnginesManager.cs index 9d67602..9ecd179 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEnginesManager.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEnginesManager.cs | |||
@@ -32,8 +32,8 @@ namespace OpenSim.Grid.ScriptServer.ScriptServer | |||
32 | { | 32 | { |
33 | internal class ScriptEngineManager | 33 | internal class ScriptEngineManager |
34 | { | 34 | { |
35 | private ScriptEngineLoader ScriptEngineLoader; | 35 | private readonly ScriptEngineLoader ScriptEngineLoader; |
36 | private List<ScriptServerInterfaces.ScriptEngine> scriptEngines = new List<ScriptServerInterfaces.ScriptEngine>(); | 36 | private readonly List<ScriptServerInterfaces.ScriptEngine> scriptEngines = new List<ScriptServerInterfaces.ScriptEngine>(); |
37 | private ScriptServerMain m_ScriptServerMain; | 37 | private ScriptServerMain m_ScriptServerMain; |
38 | 38 | ||
39 | // Initialize | 39 | // Initialize |
@@ -58,4 +58,4 @@ namespace OpenSim.Grid.ScriptServer.ScriptServer | |||
58 | return sei; | 58 | return sei; |
59 | } | 59 | } |
60 | } | 60 | } |
61 | } | 61 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServerMain.cs b/OpenSim/Grid/ScriptServer/ScriptServerMain.cs index 528b51c..131ff34 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServerMain.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServerMain.cs | |||
@@ -44,20 +44,20 @@ namespace OpenSim.Grid.ScriptServer | |||
44 | // | 44 | // |
45 | // Root object. Creates objects used. | 45 | // Root object. Creates objects used. |
46 | // | 46 | // |
47 | private int listenPort = 8010; | ||
48 | 47 | ||
49 | // TEMP | 48 | // TEMP |
50 | public static ScriptServerInterfaces.ScriptEngine Engine; | 49 | public static ScriptServerInterfaces.ScriptEngine Engine; |
50 | private int listenPort = 8010; | ||
51 | //public static FakeScene m_Scene = new FakeScene(null,null,null,null,null,null,null,null,null,false, false, false); | 51 | //public static FakeScene m_Scene = new FakeScene(null,null,null,null,null,null,null,null,null,false, false, false); |
52 | 52 | ||
53 | // Objects we use | 53 | // Objects we use |
54 | internal RegionCommManager RegionScriptDaemon; // Listen for incoming from region | ||
55 | internal ScriptEngineManager ScriptEngines; // Loads scriptengines | ||
56 | //internal RemotingServer m_RemotingServer; | 54 | //internal RemotingServer m_RemotingServer; |
57 | internal TCPServer m_TCPServer; | 55 | internal TCPServer m_TCPServer; |
56 | internal RegionCommManager RegionScriptDaemon; // Listen for incoming from region | ||
58 | internal TRPC_Remote RPC; | 57 | internal TRPC_Remote RPC; |
58 | internal ScriptEngineManager ScriptEngines; // Loads scriptengines | ||
59 | 59 | ||
60 | public ScriptServerMain() | 60 | public ScriptServerMain() |
61 | { | 61 | { |
62 | m_console = CreateConsole(); | 62 | m_console = CreateConsole(); |
63 | 63 | ||
@@ -68,13 +68,13 @@ namespace OpenSim.Grid.ScriptServer | |||
68 | Engine = ScriptEngines.LoadEngine("DotNetEngine"); | 68 | Engine = ScriptEngines.LoadEngine("DotNetEngine"); |
69 | 69 | ||
70 | Engine.InitializeEngine(null, null, false, Engine.GetScriptManager()); | 70 | Engine.InitializeEngine(null, null, false, Engine.GetScriptManager()); |
71 | 71 | ||
72 | 72 | ||
73 | // Set up server | 73 | // Set up server |
74 | //m_RemotingServer = new RemotingServer(listenPort, "DotNetEngine"); | 74 | //m_RemotingServer = new RemotingServer(listenPort, "DotNetEngine"); |
75 | m_TCPServer = new TCPServer(listenPort); | 75 | m_TCPServer = new TCPServer(listenPort); |
76 | RPC = new TRPC_Remote(m_TCPServer); | 76 | RPC = new TRPC_Remote(m_TCPServer); |
77 | RPC.ReceiveCommand += new TRPC_Remote.ReceiveCommandDelegate(RPC_ReceiveCommand); | 77 | RPC.ReceiveCommand += RPC_ReceiveCommand; |
78 | m_TCPServer.StartListen(); | 78 | m_TCPServer.StartListen(); |
79 | 79 | ||
80 | Console.ReadLine(); | 80 | Console.ReadLine(); |
@@ -93,7 +93,7 @@ namespace OpenSim.Grid.ScriptServer | |||
93 | 93 | ||
94 | if (Command == "OnRezScript") | 94 | if (Command == "OnRezScript") |
95 | { | 95 | { |
96 | Engine.EventManager().OnRezScript((uint)p[0], new LLUUID((string)p[1]), (string)p[2]); | 96 | Engine.EventManager().OnRezScript((uint) p[0], new LLUUID((string) p[1]), (string) p[2]); |
97 | } | 97 | } |
98 | } | 98 | } |
99 | 99 | ||
@@ -106,4 +106,4 @@ namespace OpenSim.Grid.ScriptServer | |||
106 | return new ConsoleBase("ScriptServer", this); | 106 | return new ConsoleBase("ScriptServer", this); |
107 | } | 107 | } |
108 | } | 108 | } |
109 | } | 109 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index 0534e3b..25e1585 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs | |||
@@ -48,12 +48,61 @@ namespace OpenSim.Grid.UserServer | |||
48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
49 | 49 | ||
50 | private UserConfig Cfg; | 50 | private UserConfig Cfg; |
51 | 51 | private LLUUID m_lastCreatedUser = LLUUID.Random(); | |
52 | public UserManager m_userManager; | 52 | |
53 | public UserLoginService m_loginService; | 53 | public UserLoginService m_loginService; |
54 | public MessageServersConnector m_messagesService; | 54 | public MessageServersConnector m_messagesService; |
55 | public UserManager m_userManager; | ||
55 | 56 | ||
56 | private LLUUID m_lastCreatedUser = LLUUID.Random(); | 57 | private OpenUser_Main() |
58 | { | ||
59 | m_console = new ConsoleBase("OpenUser", this); | ||
60 | MainConsole.Instance = m_console; | ||
61 | } | ||
62 | |||
63 | #region conscmd_callback Members | ||
64 | |||
65 | public override void RunCmd(string cmd, string[] cmdparams) | ||
66 | { | ||
67 | base.RunCmd(cmd, cmdparams); | ||
68 | |||
69 | switch (cmd) | ||
70 | { | ||
71 | case "help": | ||
72 | m_console.Notice("create user - create a new user"); | ||
73 | m_console.Notice("stats - statistical information for this server"); | ||
74 | m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)"); | ||
75 | break; | ||
76 | |||
77 | case "create": | ||
78 | do_create(cmdparams[0]); | ||
79 | break; | ||
80 | |||
81 | case "shutdown": | ||
82 | m_loginService.OnUserLoggedInAtLocation -= NotifyMessageServersUserLoggedInToLocation; | ||
83 | m_console.Close(); | ||
84 | Environment.Exit(0); | ||
85 | break; | ||
86 | |||
87 | case "stats": | ||
88 | m_console.Notice(StatsManager.UserStats.Report()); | ||
89 | break; | ||
90 | |||
91 | case "test-inventory": | ||
92 | // RestObjectPosterResponse<List<InventoryFolderBase>> requester = new RestObjectPosterResponse<List<InventoryFolderBase>>(); | ||
93 | // requester.ReturnResponseVal = TestResponse; | ||
94 | // requester.BeginPostObject<LLUUID>(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser); | ||
95 | SynchronousRestObjectPoster.BeginPostObject<LLUUID, List<InventoryFolderBase>>("POST", | ||
96 | m_userManager. | ||
97 | _config. | ||
98 | InventoryUrl + | ||
99 | "RootFolders/", | ||
100 | m_lastCreatedUser); | ||
101 | break; | ||
102 | } | ||
103 | } | ||
104 | |||
105 | #endregion | ||
57 | 106 | ||
58 | [STAThread] | 107 | [STAThread] |
59 | public static void Main(string[] args) | 108 | public static void Main(string[] args) |
@@ -68,12 +117,6 @@ namespace OpenSim.Grid.UserServer | |||
68 | userserver.Work(); | 117 | userserver.Work(); |
69 | } | 118 | } |
70 | 119 | ||
71 | private OpenUser_Main() | ||
72 | { | ||
73 | m_console = new ConsoleBase("OpenUser", this); | ||
74 | MainConsole.Instance = m_console; | ||
75 | } | ||
76 | |||
77 | private void Work() | 120 | private void Work() |
78 | { | 121 | { |
79 | m_console.Notice("Enter help for a list of commands\n"); | 122 | m_console.Notice("Enter help for a list of commands\n"); |
@@ -87,16 +130,16 @@ namespace OpenSim.Grid.UserServer | |||
87 | public void Startup() | 130 | public void Startup() |
88 | { | 131 | { |
89 | Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml"))); | 132 | Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml"))); |
90 | 133 | ||
91 | StatsManager.StartCollectingUserStats(); | 134 | StatsManager.StartCollectingUserStats(); |
92 | 135 | ||
93 | m_log.Info("[REGION]: Establishing data connection"); | 136 | m_log.Info("[REGION]: Establishing data connection"); |
94 | m_userManager = new UserManager(); | 137 | m_userManager = new UserManager(); |
95 | m_userManager._config = Cfg; | 138 | m_userManager._config = Cfg; |
96 | m_userManager.AddPlugin(Cfg.DatabaseProvider); | 139 | m_userManager.AddPlugin(Cfg.DatabaseProvider); |
97 | 140 | ||
98 | m_loginService = new UserLoginService( | 141 | m_loginService = new UserLoginService( |
99 | m_userManager, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); | 142 | m_userManager, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); |
100 | 143 | ||
101 | m_messagesService = new MessageServersConnector(); | 144 | m_messagesService = new MessageServersConnector(); |
102 | 145 | ||
@@ -104,7 +147,7 @@ namespace OpenSim.Grid.UserServer | |||
104 | m_userManager.OnLogOffUser += NotifyMessageServersUserLoggOff; | 147 | m_userManager.OnLogOffUser += NotifyMessageServersUserLoggOff; |
105 | 148 | ||
106 | m_log.Info("[REGION]: Starting HTTP process"); | 149 | m_log.Info("[REGION]: Starting HTTP process"); |
107 | 150 | ||
108 | m_httpServer = new BaseHttpServer(Cfg.HttpPort); | 151 | m_httpServer = new BaseHttpServer(Cfg.HttpPort); |
109 | AddHttpHandlers(); | 152 | AddHttpHandlers(); |
110 | m_httpServer.Start(); | 153 | m_httpServer.Start(); |
@@ -117,7 +160,7 @@ namespace OpenSim.Grid.UserServer | |||
117 | m_httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod); | 160 | m_httpServer.AddXmlRPCHandler("login_to_simulator", m_loginService.XmlRpcLoginMethod); |
118 | 161 | ||
119 | m_httpServer.AddHTTPHandler("login", m_loginService.ProcessHTMLLogin); | 162 | m_httpServer.AddHTTPHandler("login", m_loginService.ProcessHTMLLogin); |
120 | 163 | ||
121 | m_httpServer.SetLLSDHandler(m_loginService.LLSDLoginMethod); | 164 | m_httpServer.SetLLSDHandler(m_loginService.LLSDLoginMethod); |
122 | 165 | ||
123 | m_httpServer.AddXmlRPCHandler("get_user_by_name", m_userManager.XmlRPCGetUserMethodName); | 166 | m_httpServer.AddXmlRPCHandler("get_user_by_name", m_userManager.XmlRPCGetUserMethodName); |
@@ -128,7 +171,7 @@ namespace OpenSim.Grid.UserServer | |||
128 | m_httpServer.AddXmlRPCHandler("update_user_friend_perms", m_userManager.XmlRpcResponseXmlRPCUpdateUserFriendPerms); | 171 | m_httpServer.AddXmlRPCHandler("update_user_friend_perms", m_userManager.XmlRpcResponseXmlRPCUpdateUserFriendPerms); |
129 | m_httpServer.AddXmlRPCHandler("get_user_friend_list", m_userManager.XmlRpcResponseXmlRPCGetUserFriendList); | 172 | m_httpServer.AddXmlRPCHandler("get_user_friend_list", m_userManager.XmlRpcResponseXmlRPCGetUserFriendList); |
130 | m_httpServer.AddXmlRPCHandler("logout_of_simulator", m_userManager.XmlRPCLogOffUserMethodUUID); | 173 | m_httpServer.AddXmlRPCHandler("logout_of_simulator", m_userManager.XmlRPCLogOffUserMethodUUID); |
131 | 174 | ||
132 | // Message Server ---> User Server | 175 | // Message Server ---> User Server |
133 | m_httpServer.AddXmlRPCHandler("register_messageserver", m_messagesService.XmlRPCRegisterMessageServer); | 176 | m_httpServer.AddXmlRPCHandler("register_messageserver", m_messagesService.XmlRPCRegisterMessageServer); |
134 | m_httpServer.AddXmlRPCHandler("agent_change_region", m_messagesService.XmlRPCUserMovedtoRegion); | 177 | m_httpServer.AddXmlRPCHandler("agent_change_region", m_messagesService.XmlRPCUserMovedtoRegion); |
@@ -163,17 +206,17 @@ namespace OpenSim.Grid.UserServer | |||
163 | { | 206 | { |
164 | m_log.ErrorFormat( | 207 | m_log.ErrorFormat( |
165 | "[USERS]: A user with the name {0} {1} already exists!", tempfirstname, templastname); | 208 | "[USERS]: A user with the name {0} {1} already exists!", tempfirstname, templastname); |
166 | 209 | ||
167 | break; | 210 | break; |
168 | } | 211 | } |
169 | 212 | ||
170 | tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + String.Empty); | 213 | tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + String.Empty); |
171 | 214 | ||
172 | LLUUID userID = new LLUUID(); | 215 | LLUUID userID = new LLUUID(); |
173 | try | 216 | try |
174 | { | 217 | { |
175 | userID = m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); | 218 | userID = m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); |
176 | } | 219 | } |
177 | catch (Exception ex) | 220 | catch (Exception ex) |
178 | { | 221 | { |
179 | m_log.ErrorFormat("[USERS]: Error creating user: {0}", ex.ToString()); | 222 | m_log.ErrorFormat("[USERS]: Error creating user: {0}", ex.ToString()); |
@@ -181,72 +224,31 @@ namespace OpenSim.Grid.UserServer | |||
181 | 224 | ||
182 | try | 225 | try |
183 | { | 226 | { |
184 | bool created | 227 | bool created |
185 | = SynchronousRestObjectPoster.BeginPostObject<Guid, bool>( | 228 | = SynchronousRestObjectPoster.BeginPostObject<Guid, bool>( |
186 | "POST", m_userManager._config.InventoryUrl + "CreateInventory/", userID.UUID); | 229 | "POST", m_userManager._config.InventoryUrl + "CreateInventory/", userID.UUID); |
187 | 230 | ||
188 | if (!created) | 231 | if (!created) |
189 | { | 232 | { |
190 | throw new Exception( | 233 | throw new Exception( |
191 | String.Format( | 234 | String.Format( |
192 | "The inventory creation request for user {0} did not succeed." | 235 | "The inventory creation request for user {0} did not succeed." |
193 | + " Please contact your inventory service provider for more information.", | 236 | + " Please contact your inventory service provider for more information.", |
194 | userID)); | 237 | userID)); |
195 | } | 238 | } |
196 | |||
197 | } | 239 | } |
198 | catch (WebException e) | 240 | catch (WebException e) |
199 | { | 241 | { |
200 | m_log.ErrorFormat( | 242 | m_log.ErrorFormat( |
201 | "[USERS]: Could not contact the inventory service at {0} to create an inventory for {1}", | 243 | "[USERS]: Could not contact the inventory service at {0} to create an inventory for {1}", |
202 | m_userManager._config.InventoryUrl + "CreateInventory/", userID.UUID); | 244 | m_userManager._config.InventoryUrl + "CreateInventory/", userID.UUID); |
203 | } | 245 | } |
204 | catch (Exception e) | 246 | catch (Exception e) |
205 | { | 247 | { |
206 | m_log.ErrorFormat("[USERS]: Error creating inventory for user: {0}", e); | 248 | m_log.ErrorFormat("[USERS]: Error creating inventory for user: {0}", e); |
207 | } | 249 | } |
208 | |||
209 | m_lastCreatedUser = userID; | ||
210 | break; | ||
211 | } | ||
212 | } | ||
213 | 250 | ||
214 | public override void RunCmd(string cmd, string[] cmdparams) | 251 | m_lastCreatedUser = userID; |
215 | { | ||
216 | base.RunCmd(cmd, cmdparams); | ||
217 | |||
218 | switch (cmd) | ||
219 | { | ||
220 | case "help": | ||
221 | m_console.Notice("create user - create a new user"); | ||
222 | m_console.Notice("stats - statistical information for this server"); | ||
223 | m_console.Notice("shutdown - shutdown the grid (USE CAUTION!)"); | ||
224 | break; | ||
225 | |||
226 | case "create": | ||
227 | do_create(cmdparams[0]); | ||
228 | break; | ||
229 | |||
230 | case "shutdown": | ||
231 | m_loginService.OnUserLoggedInAtLocation -= NotifyMessageServersUserLoggedInToLocation; | ||
232 | m_console.Close(); | ||
233 | Environment.Exit(0); | ||
234 | break; | ||
235 | |||
236 | case "stats": | ||
237 | m_console.Notice(StatsManager.UserStats.Report()); | ||
238 | break; | ||
239 | |||
240 | case "test-inventory": | ||
241 | // RestObjectPosterResponse<List<InventoryFolderBase>> requester = new RestObjectPosterResponse<List<InventoryFolderBase>>(); | ||
242 | // requester.ReturnResponseVal = TestResponse; | ||
243 | // requester.BeginPostObject<LLUUID>(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser); | ||
244 | SynchronousRestObjectPoster.BeginPostObject<LLUUID, List<InventoryFolderBase>>("POST", | ||
245 | m_userManager. | ||
246 | _config. | ||
247 | InventoryUrl + | ||
248 | "RootFolders/", | ||
249 | m_lastCreatedUser); | ||
250 | break; | 252 | break; |
251 | } | 253 | } |
252 | } | 254 | } |
@@ -262,12 +264,11 @@ namespace OpenSim.Grid.UserServer | |||
262 | } | 264 | } |
263 | 265 | ||
264 | public void NotifyMessageServersUserLoggedInToLocation(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, | 266 | public void NotifyMessageServersUserLoggedInToLocation(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, |
265 | ulong regionhandle, float positionX, float positionY, | 267 | ulong regionhandle, float positionX, float positionY, |
266 | float positionZ, string firstname, string lastname) | 268 | float positionZ, string firstname, string lastname) |
267 | { | 269 | { |
268 | 270 | m_messagesService.TellMessageServersAboutUser(agentID, sessionID, RegionID, regionhandle, positionX, | |
269 | m_messagesService.TellMessageServersAboutUser( agentID, sessionID, RegionID, regionhandle, positionX, | 271 | positionY, positionZ, firstname, lastname); |
270 | positionY, positionZ, firstname, lastname); | ||
271 | } | 272 | } |
272 | } | 273 | } |
273 | } | 274 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/UserServer/MessageServersConnector.cs b/OpenSim/Grid/UserServer/MessageServersConnector.cs index 28f5c4c..70068e0 100644 --- a/OpenSim/Grid/UserServer/MessageServersConnector.cs +++ b/OpenSim/Grid/UserServer/MessageServersConnector.cs | |||
@@ -41,12 +41,12 @@ namespace OpenSim.Grid.UserServer | |||
41 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 41 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
42 | 42 | ||
43 | public Dictionary<string, MessageServerInfo> MessageServers; | 43 | public Dictionary<string, MessageServerInfo> MessageServers; |
44 | 44 | ||
45 | public MessageServersConnector() | 45 | public MessageServersConnector() |
46 | { | 46 | { |
47 | MessageServers = new Dictionary<string, MessageServerInfo>(); | 47 | MessageServers = new Dictionary<string, MessageServerInfo>(); |
48 | } | 48 | } |
49 | 49 | ||
50 | public void RegisterMessageServer(string URI, MessageServerInfo serverData) | 50 | public void RegisterMessageServer(string URI, MessageServerInfo serverData) |
51 | { | 51 | { |
52 | lock (MessageServers) | 52 | lock (MessageServers) |
@@ -55,7 +55,7 @@ namespace OpenSim.Grid.UserServer | |||
55 | MessageServers.Add(URI, serverData); | 55 | MessageServers.Add(URI, serverData); |
56 | } | 56 | } |
57 | } | 57 | } |
58 | 58 | ||
59 | public void DeRegisterMessageServer(string URI) | 59 | public void DeRegisterMessageServer(string URI) |
60 | { | 60 | { |
61 | lock (MessageServers) | 61 | lock (MessageServers) |
@@ -64,7 +64,7 @@ namespace OpenSim.Grid.UserServer | |||
64 | MessageServers.Remove(URI); | 64 | MessageServers.Remove(URI); |
65 | } | 65 | } |
66 | } | 66 | } |
67 | 67 | ||
68 | public void AddResponsibleRegion(string URI, ulong regionhandle) | 68 | public void AddResponsibleRegion(string URI, ulong regionhandle) |
69 | { | 69 | { |
70 | if (!MessageServers.ContainsKey(URI)) | 70 | if (!MessageServers.ContainsKey(URI)) |
@@ -76,8 +76,9 @@ namespace OpenSim.Grid.UserServer | |||
76 | MessageServerInfo msginfo = MessageServers["URI"]; | 76 | MessageServerInfo msginfo = MessageServers["URI"]; |
77 | msginfo.responsibleForRegions.Add(regionhandle); | 77 | msginfo.responsibleForRegions.Add(regionhandle); |
78 | MessageServers["URI"] = msginfo; | 78 | MessageServers["URI"] = msginfo; |
79 | } | 79 | } |
80 | } | 80 | } |
81 | |||
81 | public void RemoveResponsibleRegion(string URI, ulong regionhandle) | 82 | public void RemoveResponsibleRegion(string URI, ulong regionhandle) |
82 | { | 83 | { |
83 | if (!MessageServers.ContainsKey(URI)) | 84 | if (!MessageServers.ContainsKey(URI)) |
@@ -92,20 +93,20 @@ namespace OpenSim.Grid.UserServer | |||
92 | msginfo.responsibleForRegions.Remove(regionhandle); | 93 | msginfo.responsibleForRegions.Remove(regionhandle); |
93 | MessageServers["URI"] = msginfo; | 94 | MessageServers["URI"] = msginfo; |
94 | } | 95 | } |
95 | } | 96 | } |
96 | |||
97 | } | 97 | } |
98 | |||
98 | public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) | 99 | public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) |
99 | { | 100 | { |
100 | XmlRpcResponse response = new XmlRpcResponse(); | 101 | XmlRpcResponse response = new XmlRpcResponse(); |
101 | Hashtable requestData = (Hashtable)request.Params[0]; | 102 | Hashtable requestData = (Hashtable) request.Params[0]; |
102 | Hashtable responseData = new Hashtable(); | 103 | Hashtable responseData = new Hashtable(); |
103 | 104 | ||
104 | if (requestData.Contains("uri")) | 105 | if (requestData.Contains("uri")) |
105 | { | 106 | { |
106 | string URI = (string)requestData["uri"]; | 107 | string URI = (string) requestData["uri"]; |
107 | string sendkey=(string)requestData["sendkey"]; | 108 | string sendkey = (string) requestData["sendkey"]; |
108 | string recvkey=(string)requestData["recvkey"]; | 109 | string recvkey = (string) requestData["recvkey"]; |
109 | MessageServerInfo m = new MessageServerInfo(); | 110 | MessageServerInfo m = new MessageServerInfo(); |
110 | m.URI = URI; | 111 | m.URI = URI; |
111 | m.sendkey = sendkey; | 112 | m.sendkey = sendkey; |
@@ -116,15 +117,16 @@ namespace OpenSim.Grid.UserServer | |||
116 | } | 117 | } |
117 | return response; | 118 | return response; |
118 | } | 119 | } |
120 | |||
119 | public XmlRpcResponse XmlRPCDeRegisterMessageServer(XmlRpcRequest request) | 121 | public XmlRpcResponse XmlRPCDeRegisterMessageServer(XmlRpcRequest request) |
120 | { | 122 | { |
121 | XmlRpcResponse response = new XmlRpcResponse(); | 123 | XmlRpcResponse response = new XmlRpcResponse(); |
122 | Hashtable requestData = (Hashtable)request.Params[0]; | 124 | Hashtable requestData = (Hashtable) request.Params[0]; |
123 | Hashtable responseData = new Hashtable(); | 125 | Hashtable responseData = new Hashtable(); |
124 | 126 | ||
125 | if (requestData.Contains("uri")) | 127 | if (requestData.Contains("uri")) |
126 | { | 128 | { |
127 | string URI = (string)requestData["uri"]; | 129 | string URI = (string) requestData["uri"]; |
128 | 130 | ||
129 | DeRegisterMessageServer(URI); | 131 | DeRegisterMessageServer(URI); |
130 | responseData["responsestring"] = "TRUE"; | 132 | responseData["responsestring"] = "TRUE"; |
@@ -132,23 +134,24 @@ namespace OpenSim.Grid.UserServer | |||
132 | } | 134 | } |
133 | return response; | 135 | return response; |
134 | } | 136 | } |
137 | |||
135 | public XmlRpcResponse XmlRPCUserMovedtoRegion(XmlRpcRequest request) | 138 | public XmlRpcResponse XmlRPCUserMovedtoRegion(XmlRpcRequest request) |
136 | { | 139 | { |
137 | XmlRpcResponse response = new XmlRpcResponse(); | 140 | XmlRpcResponse response = new XmlRpcResponse(); |
138 | Hashtable requestData = (Hashtable)request.Params[0]; | 141 | Hashtable requestData = (Hashtable) request.Params[0]; |
139 | Hashtable responseData = new Hashtable(); | 142 | Hashtable responseData = new Hashtable(); |
140 | 143 | ||
141 | if (requestData.Contains("fromuri")) | 144 | if (requestData.Contains("fromuri")) |
142 | { | 145 | { |
143 | string sURI = (string)requestData["fromuri"]; | 146 | string sURI = (string) requestData["fromuri"]; |
144 | string sagentID = (string)requestData["agentid"]; | 147 | string sagentID = (string) requestData["agentid"]; |
145 | string ssessionID = (string)requestData["sessionid"]; | 148 | string ssessionID = (string) requestData["sessionid"]; |
146 | string scurrentRegionID = (string)requestData["regionid"]; | 149 | string scurrentRegionID = (string) requestData["regionid"]; |
147 | string sregionhandle = (string)requestData["regionhandle"]; | 150 | string sregionhandle = (string) requestData["regionhandle"]; |
148 | string scurrentpos = (string)requestData["currentpos"]; | 151 | string scurrentpos = (string) requestData["currentpos"]; |
149 | //LLVector3.TryParse((string)reader["currentPos"], out retval.currentPos); | 152 | //LLVector3.TryParse((string)reader["currentPos"], out retval.currentPos); |
150 | // TODO: Okay now raise event so the user server can pass this data to the Usermanager | 153 | // TODO: Okay now raise event so the user server can pass this data to the Usermanager |
151 | 154 | ||
152 | responseData["responsestring"] = "TRUE"; | 155 | responseData["responsestring"] = "TRUE"; |
153 | response.Value = responseData; | 156 | response.Value = responseData; |
154 | } | 157 | } |
@@ -156,7 +159,7 @@ namespace OpenSim.Grid.UserServer | |||
156 | } | 159 | } |
157 | 160 | ||
158 | public void TellMessageServersAboutUser(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, | 161 | public void TellMessageServersAboutUser(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, |
159 | ulong regionhandle, float positionX, float positionY, | 162 | ulong regionhandle, float positionX, float positionY, |
160 | float positionZ, string firstname, string lastname) | 163 | float positionZ, string firstname, string lastname) |
161 | { | 164 | { |
162 | // Loop over registered Message Servers ( AND THERE WILL BE MORE THEN ONE :D ) | 165 | // Loop over registered Message Servers ( AND THERE WILL BE MORE THEN ONE :D ) |
@@ -173,8 +176,8 @@ namespace OpenSim.Grid.UserServer | |||
173 | foreach (MessageServerInfo serv in MessageServers.Values) | 176 | foreach (MessageServerInfo serv in MessageServers.Values) |
174 | { | 177 | { |
175 | NotifyMessageServerAboutUser(serv, agentID, sessionID, RegionID, | 178 | NotifyMessageServerAboutUser(serv, agentID, sessionID, RegionID, |
176 | regionhandle, positionX, positionY, positionZ, | 179 | regionhandle, positionX, positionY, positionZ, |
177 | firstname, lastname); | 180 | firstname, lastname); |
178 | } | 181 | } |
179 | } | 182 | } |
180 | } | 183 | } |
@@ -191,10 +194,10 @@ namespace OpenSim.Grid.UserServer | |||
191 | // { | 194 | // { |
192 | // m_log.Debug("[MSGCONNECTOR]: No Message Servers registered, ignoring"); | 195 | // m_log.Debug("[MSGCONNECTOR]: No Message Servers registered, ignoring"); |
193 | // } | 196 | // } |
194 | foreach (MessageServerInfo serv in MessageServers.Values) | 197 | foreach (MessageServerInfo serv in MessageServers.Values) |
195 | { | 198 | { |
196 | NotifyMessageServerAboutUserLogoff(serv,agentID); | 199 | NotifyMessageServerAboutUserLogoff(serv, agentID); |
197 | } | 200 | } |
198 | } | 201 | } |
199 | } | 202 | } |
200 | 203 | ||
@@ -218,10 +221,10 @@ namespace OpenSim.Grid.UserServer | |||
218 | m_log.Info("[LOGOUT]: Notified : " + serv.URI + " about user logout"); | 221 | m_log.Info("[LOGOUT]: Notified : " + serv.URI + " about user logout"); |
219 | } | 222 | } |
220 | 223 | ||
221 | private void NotifyMessageServerAboutUser(MessageServerInfo serv, | 224 | private void NotifyMessageServerAboutUser(MessageServerInfo serv, |
222 | LLUUID agentID, LLUUID sessionID, LLUUID RegionID, | 225 | LLUUID agentID, LLUUID sessionID, LLUUID RegionID, |
223 | ulong regionhandle, float positionX, float positionY, float positionZ, | 226 | ulong regionhandle, float positionX, float positionY, float positionZ, |
224 | string firstname, string lastname) | 227 | string firstname, string lastname) |
225 | { | 228 | { |
226 | Hashtable reqparams = new Hashtable(); | 229 | Hashtable reqparams = new Hashtable(); |
227 | reqparams["sendkey"] = serv.sendkey; | 230 | reqparams["sendkey"] = serv.sendkey; |
@@ -250,7 +253,6 @@ namespace OpenSim.Grid.UserServer | |||
250 | { | 253 | { |
251 | m_log.Warn("[MSGCONNECTOR]: Unable to notify Message Server about login. Presence might be borked for this user"); | 254 | m_log.Warn("[MSGCONNECTOR]: Unable to notify Message Server about login. Presence might be borked for this user"); |
252 | } | 255 | } |
253 | |||
254 | } | 256 | } |
255 | } | 257 | } |
256 | } | 258 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs b/OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs index 680b357..eb60f11 100644 --- a/OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs +++ b/OpenSim/Grid/UserServer/Properties/AssemblyInfo.cs | |||
@@ -60,4 +60,4 @@ using System.Runtime.InteropServices; | |||
60 | // | 60 | // |
61 | 61 | ||
62 | [assembly : AssemblyVersion("1.0.0.0")] | 62 | [assembly : AssemblyVersion("1.0.0.0")] |
63 | [assembly : AssemblyFileVersion("1.0.0.0")] | 63 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index b123b8c..b19b74d 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs | |||
@@ -41,26 +41,26 @@ using OpenSim.Framework.Servers; | |||
41 | namespace OpenSim.Grid.UserServer | 41 | namespace OpenSim.Grid.UserServer |
42 | { | 42 | { |
43 | public delegate void UserLoggedInAtLocation(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, | 43 | public delegate void UserLoggedInAtLocation(LLUUID agentID, LLUUID sessionID, LLUUID RegionID, |
44 | ulong regionhandle, float positionX, float positionY, float positionZ, string firstname, string lastname); | 44 | ulong regionhandle, float positionX, float positionY, float positionZ, string firstname, string lastname); |
45 | 45 | ||
46 | public class UserLoginService : LoginService | 46 | public class UserLoginService : LoginService |
47 | { | 47 | { |
48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 48 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
49 | 49 | ||
50 | public event UserLoggedInAtLocation OnUserLoggedInAtLocation; | 50 | private UserLoggedInAtLocation handlerUserLoggedInAtLocation; |
51 | 51 | ||
52 | private UserLoggedInAtLocation handlerUserLoggedInAtLocation = null; | ||
53 | |||
54 | public UserConfig m_config; | 52 | public UserConfig m_config; |
55 | 53 | ||
56 | public UserLoginService( | 54 | public UserLoginService( |
57 | UserManagerBase userManager, LibraryRootFolder libraryRootFolder, | 55 | UserManagerBase userManager, LibraryRootFolder libraryRootFolder, |
58 | UserConfig config, string welcomeMess) | 56 | UserConfig config, string welcomeMess) |
59 | : base(userManager, libraryRootFolder, welcomeMess) | 57 | : base(userManager, libraryRootFolder, welcomeMess) |
60 | { | 58 | { |
61 | m_config = config; | 59 | m_config = config; |
62 | } | 60 | } |
63 | 61 | ||
62 | public event UserLoggedInAtLocation OnUserLoggedInAtLocation; | ||
63 | |||
64 | /// <summary> | 64 | /// <summary> |
65 | /// Customises the login response and fills in missing values. | 65 | /// Customises the login response and fills in missing values. |
66 | /// </summary> | 66 | /// </summary> |
@@ -95,7 +95,8 @@ namespace OpenSim.Grid.UserServer | |||
95 | else | 95 | else |
96 | { | 96 | { |
97 | string[] startLocationRequestParsed = Util.ParseStartLocationRequest(startLocationRequest); | 97 | string[] startLocationRequestParsed = Util.ParseStartLocationRequest(startLocationRequest); |
98 | m_log.Info("[DEBUGLOGINPARSE]: 1:" + startLocationRequestParsed[0] + ", 2:" + startLocationRequestParsed[1] + ", 3:" + startLocationRequestParsed[2] + ", 4:" + startLocationRequestParsed[3]); | 98 | m_log.Info("[DEBUGLOGINPARSE]: 1:" + startLocationRequestParsed[0] + ", 2:" + startLocationRequestParsed[1] + ", 3:" + |
99 | startLocationRequestParsed[2] + ", 4:" + startLocationRequestParsed[3]); | ||
99 | if (startLocationRequestParsed[0] == "last") | 100 | if (startLocationRequestParsed[0] == "last") |
100 | { | 101 | { |
101 | // TODO: Parse out startlocationrequest string in the format; 'uri:RegionName&X&Y&Z' | 102 | // TODO: Parse out startlocationrequest string in the format; 'uri:RegionName&X&Y&Z' |
@@ -108,9 +109,9 @@ namespace OpenSim.Grid.UserServer | |||
108 | { | 109 | { |
109 | m_log.Info("[LOGIN]: Looking up Sim: " + startLocationRequestParsed[0]); | 110 | m_log.Info("[LOGIN]: Looking up Sim: " + startLocationRequestParsed[0]); |
110 | SimInfo = | 111 | SimInfo = |
111 | RegionProfileData.RequestSimProfileData( | 112 | RegionProfileData.RequestSimProfileData( |
112 | startLocationRequestParsed[0], m_config.GridServerURL, | 113 | startLocationRequestParsed[0], m_config.GridServerURL, |
113 | m_config.GridSendKey, m_config.GridRecvKey); | 114 | m_config.GridSendKey, m_config.GridRecvKey); |
114 | 115 | ||
115 | if (SimInfo == null) | 116 | if (SimInfo == null) |
116 | { | 117 | { |
@@ -119,7 +120,9 @@ namespace OpenSim.Grid.UserServer | |||
119 | RegionProfileData.RequestSimProfileData( | 120 | RegionProfileData.RequestSimProfileData( |
120 | theUser.HomeRegion, m_config.GridServerURL, | 121 | theUser.HomeRegion, m_config.GridServerURL, |
121 | m_config.GridSendKey, m_config.GridRecvKey); | 122 | m_config.GridSendKey, m_config.GridRecvKey); |
122 | } else { | 123 | } |
124 | else | ||
125 | { | ||
123 | start_x = Convert.ToInt32(startLocationRequestParsed[1]); | 126 | start_x = Convert.ToInt32(startLocationRequestParsed[1]); |
124 | start_y = Convert.ToInt32(startLocationRequestParsed[2]); | 127 | start_y = Convert.ToInt32(startLocationRequestParsed[2]); |
125 | start_z = Convert.ToInt32(startLocationRequestParsed[3]); | 128 | start_z = Convert.ToInt32(startLocationRequestParsed[3]); |
@@ -130,30 +133,30 @@ namespace OpenSim.Grid.UserServer | |||
130 | // Customise the response | 133 | // Customise the response |
131 | //CFK: This is redundant and the next message should always appear. | 134 | //CFK: This is redundant and the next message should always appear. |
132 | //CFK: m_log.Info("[LOGIN]: Home Location"); | 135 | //CFK: m_log.Info("[LOGIN]: Home Location"); |
133 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * Constants.RegionSize).ToString() + ",r" + | 136 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * Constants.RegionSize) + ",r" + |
134 | (SimInfo.regionLocY * Constants.RegionSize).ToString() + "], " + | 137 | (SimInfo.regionLocY * Constants.RegionSize) + "], " + |
135 | "'position':[r" + theUser.HomeLocation.X.ToString() + ",r" + | 138 | "'position':[r" + theUser.HomeLocation.X + ",r" + |
136 | theUser.HomeLocation.Y.ToString() + ",r" + theUser.HomeLocation.Z.ToString() + "], " + | 139 | theUser.HomeLocation.Y + ",r" + theUser.HomeLocation.Z + "], " + |
137 | "'look_at':[r" + theUser.HomeLocation.X.ToString() + ",r" + | 140 | "'look_at':[r" + theUser.HomeLocation.X + ",r" + |
138 | theUser.HomeLocation.Y.ToString() + ",r" + theUser.HomeLocation.Z.ToString() + "]}"; | 141 | theUser.HomeLocation.Y + ",r" + theUser.HomeLocation.Z + "]}"; |
139 | 142 | ||
140 | // Destination | 143 | // Destination |
141 | //CFK: The "Notifying" message always seems to appear, so subsume the data from this message into | 144 | //CFK: The "Notifying" message always seems to appear, so subsume the data from this message into |
142 | //CFK: the next one for X & Y and comment this one. | 145 | //CFK: the next one for X & Y and comment this one. |
143 | //CFK: m_log.Info("[LOGIN]: CUSTOMISERESPONSE: Region X: " + SimInfo.regionLocX + | 146 | //CFK: m_log.Info("[LOGIN]: CUSTOMISERESPONSE: Region X: " + SimInfo.regionLocX + |
144 | //CFK: "; Region Y: " + SimInfo.regionLocY); | 147 | //CFK: "; Region Y: " + SimInfo.regionLocY); |
145 | response.SimAddress = Util.GetHostFromDNS(SimInfo.serverURI.Split(new char[] { '/', ':' })[3]).ToString(); | 148 | response.SimAddress = Util.GetHostFromDNS(SimInfo.serverURI.Split(new[] {'/', ':'})[3]).ToString(); |
146 | response.SimPort = uint.Parse(SimInfo.serverURI.Split(new char[] { '/', ':' })[4]); | 149 | response.SimPort = uint.Parse(SimInfo.serverURI.Split(new[] {'/', ':'})[4]); |
147 | response.RegionX = SimInfo.regionLocX; | 150 | response.RegionX = SimInfo.regionLocX; |
148 | response.RegionY = SimInfo.regionLocY; | 151 | response.RegionY = SimInfo.regionLocY; |
149 | 152 | ||
150 | //Not sure if the + "/CAPS/" should in fact be +"CAPS/" depending if there is already a / as part of httpServerURI | 153 | //Not sure if the + "/CAPS/" should in fact be +"CAPS/" depending if there is already a / as part of httpServerURI |
151 | string capsPath = Util.GetRandomCapsPath(); | 154 | string capsPath = Util.GetRandomCapsPath(); |
152 | response.SeedCapability = SimInfo.httpServerURI + "CAPS/" + capsPath + "0000/"; | 155 | response.SeedCapability = SimInfo.httpServerURI + "CAPS/" + capsPath + "0000/"; |
153 | 156 | ||
154 | m_log.DebugFormat( | 157 | m_log.DebugFormat( |
155 | "[LOGIN]: Sending new CAPS seed url {0} to client {1}", | 158 | "[LOGIN]: Sending new CAPS seed url {0} to client {1}", |
156 | response.SeedCapability, response.AgentID); | 159 | response.SeedCapability, response.AgentID); |
157 | 160 | ||
158 | // Notify the target of an incoming user | 161 | // Notify the target of an incoming user |
159 | //CFK: The "Notifying" message always seems to appear, so subsume the data from this message into | 162 | //CFK: The "Notifying" message always seems to appear, so subsume the data from this message into |
@@ -163,7 +166,8 @@ namespace OpenSim.Grid.UserServer | |||
163 | 166 | ||
164 | theUser.CurrentAgent.Region = SimInfo.UUID; | 167 | theUser.CurrentAgent.Region = SimInfo.UUID; |
165 | theUser.CurrentAgent.Handle = SimInfo.regionHandle; | 168 | theUser.CurrentAgent.Handle = SimInfo.regionHandle; |
166 | if (start_x >= 0 && start_y >= 0 && start_z >= 0) { | 169 | if (start_x >= 0 && start_y >= 0 && start_z >= 0) |
170 | { | ||
167 | LLVector3 tmp_v = new LLVector3(start_x, start_y, start_z); | 171 | LLVector3 tmp_v = new LLVector3(start_x, start_y, start_z); |
168 | theUser.CurrentAgent.Position = tmp_v; | 172 | theUser.CurrentAgent.Position = tmp_v; |
169 | } | 173 | } |
@@ -186,42 +190,43 @@ namespace OpenSim.Grid.UserServer | |||
186 | // Update agent with target sim | 190 | // Update agent with target sim |
187 | 191 | ||
188 | m_log.InfoFormat( | 192 | m_log.InfoFormat( |
189 | "[LOGIN]: Telling region {0} @ {1},{2} ({3}) to expect user connection", | 193 | "[LOGIN]: Telling region {0} @ {1},{2} ({3}) to expect user connection", |
190 | SimInfo.regionName, response.RegionX, response.RegionY, SimInfo.httpServerURI); | 194 | SimInfo.regionName, response.RegionX, response.RegionY, SimInfo.httpServerURI); |
191 | 195 | ||
192 | XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams); | 196 | XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams); |
193 | XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000); | 197 | XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000); |
194 | 198 | ||
195 | if (GridResp.IsFault) | 199 | if (GridResp.IsFault) |
196 | { | 200 | { |
197 | m_log.ErrorFormat( | 201 | m_log.ErrorFormat( |
198 | "[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}", | 202 | "[LOGIN]: XMLRPC request for {0} failed, fault code: {1}, reason: {2}", |
199 | SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString); | 203 | SimInfo.httpServerURI, GridResp.FaultCode, GridResp.FaultString); |
200 | } | 204 | } |
201 | handlerUserLoggedInAtLocation = OnUserLoggedInAtLocation; | 205 | handlerUserLoggedInAtLocation = OnUserLoggedInAtLocation; |
202 | if (handlerUserLoggedInAtLocation != null) | 206 | if (handlerUserLoggedInAtLocation != null) |
203 | { | 207 | { |
204 | //m_log.Info("[LOGIN]: Letting other objects know about login"); | 208 | //m_log.Info("[LOGIN]: Letting other objects know about login"); |
205 | handlerUserLoggedInAtLocation(theUser.ID, theUser.CurrentAgent.SessionID, theUser.CurrentAgent.Region, | 209 | handlerUserLoggedInAtLocation(theUser.ID, theUser.CurrentAgent.SessionID, theUser.CurrentAgent.Region, |
206 | theUser.CurrentAgent.Handle, theUser.CurrentAgent.Position.X,theUser.CurrentAgent.Position.Y,theUser.CurrentAgent.Position.Z, | 210 | theUser.CurrentAgent.Handle, theUser.CurrentAgent.Position.X, theUser.CurrentAgent.Position.Y, |
207 | theUser.FirstName,theUser.SurName); | 211 | theUser.CurrentAgent.Position.Z, |
212 | theUser.FirstName, theUser.SurName); | ||
208 | } | 213 | } |
209 | } | 214 | } |
210 | catch (Exception) | 215 | catch (Exception) |
211 | //catch (System.AccessViolationException) | 216 | //catch (System.AccessViolationException) |
212 | { | 217 | { |
213 | tryDefault = true; | 218 | tryDefault = true; |
214 | } | 219 | } |
215 | 220 | ||
216 | if (tryDefault) | 221 | if (tryDefault) |
217 | { | 222 | { |
218 | // Send him to default region instead | 223 | // Send him to default region instead |
219 | // Load information from the gridserver | 224 | // Load information from the gridserver |
220 | 225 | ||
221 | ulong defaultHandle = (((ulong)m_config.DefaultX * Constants.RegionSize) << 32) | ((ulong)m_config.DefaultY * Constants.RegionSize); | 226 | ulong defaultHandle = (((ulong) m_config.DefaultX * Constants.RegionSize) << 32) | ((ulong) m_config.DefaultY * Constants.RegionSize); |
222 | 227 | ||
223 | m_log.Warn( | 228 | m_log.Warn( |
224 | "[LOGIN]: Home region not available: sending to default " + defaultHandle.ToString()); | 229 | "[LOGIN]: Home region not available: sending to default " + defaultHandle); |
225 | 230 | ||
226 | try | 231 | try |
227 | { | 232 | { |
@@ -231,19 +236,19 @@ namespace OpenSim.Grid.UserServer | |||
231 | 236 | ||
232 | // Customise the response | 237 | // Customise the response |
233 | m_log.Info("[LOGIN]: Home Location"); | 238 | m_log.Info("[LOGIN]: Home Location"); |
234 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * Constants.RegionSize).ToString() + ",r" + | 239 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * Constants.RegionSize) + ",r" + |
235 | (SimInfo.regionLocY * Constants.RegionSize).ToString() + "], " + | 240 | (SimInfo.regionLocY * Constants.RegionSize) + "], " + |
236 | "'position':[r" + theUser.HomeLocation.X.ToString() + ",r" + | 241 | "'position':[r" + theUser.HomeLocation.X + ",r" + |
237 | theUser.HomeLocation.Y.ToString() + ",r" + theUser.HomeLocation.Z.ToString() + "], " + | 242 | theUser.HomeLocation.Y + ",r" + theUser.HomeLocation.Z + "], " + |
238 | "'look_at':[r" + theUser.HomeLocation.X.ToString() + ",r" + | 243 | "'look_at':[r" + theUser.HomeLocation.X + ",r" + |
239 | theUser.HomeLocation.Y.ToString() + ",r" + theUser.HomeLocation.Z.ToString() + "]}"; | 244 | theUser.HomeLocation.Y + ",r" + theUser.HomeLocation.Z + "]}"; |
240 | 245 | ||
241 | // Destination | 246 | // Destination |
242 | m_log.Info("[LOGIN]: " + | 247 | m_log.Info("[LOGIN]: " + |
243 | "CUSTOMISERESPONSE: Region X: " + SimInfo.regionLocX + "; Region Y: " + | 248 | "CUSTOMISERESPONSE: Region X: " + SimInfo.regionLocX + "; Region Y: " + |
244 | SimInfo.regionLocY); | 249 | SimInfo.regionLocY); |
245 | response.SimAddress = Util.GetHostFromDNS(SimInfo.serverURI.Split(new char[] { '/', ':' })[3]).ToString(); | 250 | response.SimAddress = Util.GetHostFromDNS(SimInfo.serverURI.Split(new[] {'/', ':'})[3]).ToString(); |
246 | response.SimPort = uint.Parse(SimInfo.serverURI.Split(new char[] { '/', ':' })[4]); | 251 | response.SimPort = uint.Parse(SimInfo.serverURI.Split(new[] {'/', ':'})[4]); |
247 | response.RegionX = SimInfo.regionLocX; | 252 | response.RegionX = SimInfo.regionLocX; |
248 | response.RegionY = SimInfo.regionLocY; | 253 | response.RegionY = SimInfo.regionLocY; |
249 | 254 | ||
@@ -283,15 +288,16 @@ namespace OpenSim.Grid.UserServer | |||
283 | { | 288 | { |
284 | m_log.Info("[LOGIN]: Letting other objects know about login"); | 289 | m_log.Info("[LOGIN]: Letting other objects know about login"); |
285 | handlerUserLoggedInAtLocation(theUser.ID, theUser.CurrentAgent.SessionID, theUser.CurrentAgent.Region, | 290 | handlerUserLoggedInAtLocation(theUser.ID, theUser.CurrentAgent.SessionID, theUser.CurrentAgent.Region, |
286 | theUser.CurrentAgent.Handle, theUser.CurrentAgent.Position.X, theUser.CurrentAgent.Position.Y, theUser.CurrentAgent.Position.Z, | 291 | theUser.CurrentAgent.Handle, theUser.CurrentAgent.Position.X, theUser.CurrentAgent.Position.Y, |
287 | theUser.FirstName, theUser.SurName); | 292 | theUser.CurrentAgent.Position.Z, |
293 | theUser.FirstName, theUser.SurName); | ||
288 | } | 294 | } |
289 | } | 295 | } |
290 | 296 | ||
291 | catch (Exception e) | 297 | catch (Exception e) |
292 | { | 298 | { |
293 | m_log.Warn("[LOGIN]: Default region also not available"); | 299 | m_log.Warn("[LOGIN]: Default region also not available"); |
294 | m_log.Warn("[LOGIN]: " + e.ToString()); | 300 | m_log.Warn("[LOGIN]: " + e); |
295 | } | 301 | } |
296 | } | 302 | } |
297 | } | 303 | } |
@@ -300,8 +306,8 @@ namespace OpenSim.Grid.UserServer | |||
300 | protected override InventoryData GetInventorySkeleton(LLUUID userID) | 306 | protected override InventoryData GetInventorySkeleton(LLUUID userID) |
301 | { | 307 | { |
302 | m_log.DebugFormat( | 308 | m_log.DebugFormat( |
303 | "[LOGIN]: Contacting inventory service at {0} for inventory skeleton of user {1}", | 309 | "[LOGIN]: Contacting inventory service at {0} for inventory skeleton of user {1}", |
304 | m_config.InventoryUrl, userID); | 310 | m_config.InventoryUrl, userID); |
305 | 311 | ||
306 | List<InventoryFolderBase> folders | 312 | List<InventoryFolderBase> folders |
307 | = SynchronousRestObjectPoster.BeginPostObject<Guid, List<InventoryFolderBase>>( | 313 | = SynchronousRestObjectPoster.BeginPostObject<Guid, List<InventoryFolderBase>>( |
@@ -316,23 +322,23 @@ namespace OpenSim.Grid.UserServer | |||
316 | // tools are creating the user profile directly in the database without creating the inventory. At | 322 | // tools are creating the user profile directly in the database without creating the inventory. At |
317 | // this time we'll accomodate them by lazily creating the user inventory now if it doesn't already | 323 | // this time we'll accomodate them by lazily creating the user inventory now if it doesn't already |
318 | // exist. | 324 | // exist. |
319 | bool created = | 325 | bool created = |
320 | SynchronousRestObjectPoster.BeginPostObject<Guid, bool>( | 326 | SynchronousRestObjectPoster.BeginPostObject<Guid, bool>( |
321 | "POST", m_config.InventoryUrl + "CreateInventory/", userID.UUID); | 327 | "POST", m_config.InventoryUrl + "CreateInventory/", userID.UUID); |
322 | 328 | ||
323 | if (!created) | 329 | if (!created) |
324 | { | 330 | { |
325 | throw new Exception( | 331 | throw new Exception( |
326 | String.Format( | 332 | String.Format( |
327 | "The inventory creation request for user {0} did not succeed." | 333 | "The inventory creation request for user {0} did not succeed." |
328 | + " Please contact your inventory service provider for more information.", | 334 | + " Please contact your inventory service provider for more information.", |
329 | userID)); | 335 | userID)); |
330 | } | 336 | } |
331 | else | 337 | else |
332 | { | 338 | { |
333 | m_log.InfoFormat("[LOGIN]: A new inventory skeleton was successfully created for user {0}", userID); | 339 | m_log.InfoFormat("[LOGIN]: A new inventory skeleton was successfully created for user {0}", userID); |
334 | } | 340 | } |
335 | 341 | ||
336 | folders = SynchronousRestObjectPoster.BeginPostObject<Guid, List<InventoryFolderBase>>( | 342 | folders = SynchronousRestObjectPoster.BeginPostObject<Guid, List<InventoryFolderBase>>( |
337 | "POST", m_config.InventoryUrl + "RootFolders/", userID.UUID); | 343 | "POST", m_config.InventoryUrl + "RootFolders/", userID.UUID); |
338 | } | 344 | } |
@@ -342,11 +348,11 @@ namespace OpenSim.Grid.UserServer | |||
342 | LLUUID rootID = LLUUID.Zero; | 348 | LLUUID rootID = LLUUID.Zero; |
343 | ArrayList AgentInventoryArray = new ArrayList(); | 349 | ArrayList AgentInventoryArray = new ArrayList(); |
344 | Hashtable TempHash; | 350 | Hashtable TempHash; |
345 | 351 | ||
346 | foreach (InventoryFolderBase InvFolder in folders) | 352 | foreach (InventoryFolderBase InvFolder in folders) |
347 | { | 353 | { |
348 | // m_log.DebugFormat("[LOGIN]: Received agent inventory folder {0}", InvFolder.name); | 354 | // m_log.DebugFormat("[LOGIN]: Received agent inventory folder {0}", InvFolder.name); |
349 | 355 | ||
350 | if (InvFolder.ParentID == LLUUID.Zero) | 356 | if (InvFolder.ParentID == LLUUID.Zero) |
351 | { | 357 | { |
352 | rootID = InvFolder.ID; | 358 | rootID = InvFolder.ID; |
@@ -359,16 +365,16 @@ namespace OpenSim.Grid.UserServer | |||
359 | TempHash["folder_id"] = InvFolder.ID.ToString(); | 365 | TempHash["folder_id"] = InvFolder.ID.ToString(); |
360 | AgentInventoryArray.Add(TempHash); | 366 | AgentInventoryArray.Add(TempHash); |
361 | } | 367 | } |
362 | 368 | ||
363 | return new InventoryData(AgentInventoryArray, rootID); | 369 | return new InventoryData(AgentInventoryArray, rootID); |
364 | } | 370 | } |
365 | else | 371 | else |
366 | { | 372 | { |
367 | throw new Exception( | 373 | throw new Exception( |
368 | String.Format( | 374 | String.Format( |
369 | "A root inventory folder for user {0} could not be retrieved from the inventory service", | 375 | "A root inventory folder for user {0} could not be retrieved from the inventory service", |
370 | userID)); | 376 | userID)); |
371 | } | 377 | } |
372 | } | 378 | } |
373 | } | 379 | } |
374 | } | 380 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index 5d0e1d6..0122ad0 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs | |||
@@ -41,11 +41,11 @@ namespace OpenSim.Grid.UserServer | |||
41 | public delegate void logOffUser(LLUUID AgentID); | 41 | public delegate void logOffUser(LLUUID AgentID); |
42 | 42 | ||
43 | public class UserManager : UserManagerBase | 43 | public class UserManager : UserManagerBase |
44 | { | 44 | { |
45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 45 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
46 | 46 | ||
47 | private logOffUser handlerLogOffUser; | ||
47 | public event logOffUser OnLogOffUser; | 48 | public event logOffUser OnLogOffUser; |
48 | private logOffUser handlerLogOffUser = null; | ||
49 | 49 | ||
50 | /// <summary> | 50 | /// <summary> |
51 | /// Deletes an active agent session | 51 | /// Deletes an active agent session |
@@ -81,17 +81,17 @@ namespace OpenSim.Grid.UserServer | |||
81 | XmlRpcResponse response = new XmlRpcResponse(); | 81 | XmlRpcResponse response = new XmlRpcResponse(); |
82 | Hashtable responseData = new Hashtable(); | 82 | Hashtable responseData = new Hashtable(); |
83 | // Query Result Information | 83 | // Query Result Information |
84 | responseData["queryid"] = (string) queryID.ToString(); | 84 | responseData["queryid"] = queryID.ToString(); |
85 | responseData["avcount"] = (string) returnUsers.Count.ToString(); | 85 | responseData["avcount"] = returnUsers.Count.ToString(); |
86 | 86 | ||
87 | for (int i = 0; i < returnUsers.Count; i++) | 87 | for (int i = 0; i < returnUsers.Count; i++) |
88 | { | 88 | { |
89 | responseData["avatarid" + i.ToString()] = returnUsers[i].AvatarID.ToString(); | 89 | responseData["avatarid" + i] = returnUsers[i].AvatarID.ToString(); |
90 | responseData["firstname" + i.ToString()] = returnUsers[i].firstName; | 90 | responseData["firstname" + i] = returnUsers[i].firstName; |
91 | responseData["lastname" + i.ToString()] = returnUsers[i].lastName; | 91 | responseData["lastname" + i] = returnUsers[i].lastName; |
92 | } | 92 | } |
93 | response.Value = responseData; | 93 | response.Value = responseData; |
94 | 94 | ||
95 | return response; | 95 | return response; |
96 | } | 96 | } |
97 | 97 | ||
@@ -101,14 +101,14 @@ namespace OpenSim.Grid.UserServer | |||
101 | Hashtable responseData = new Hashtable(); | 101 | Hashtable responseData = new Hashtable(); |
102 | // Query Result Information | 102 | // Query Result Information |
103 | 103 | ||
104 | responseData["avcount"] = (string)returnUsers.Count.ToString(); | 104 | responseData["avcount"] = returnUsers.Count.ToString(); |
105 | 105 | ||
106 | for (int i = 0; i < returnUsers.Count; i++) | 106 | for (int i = 0; i < returnUsers.Count; i++) |
107 | { | 107 | { |
108 | responseData["ownerID" + i.ToString()] = returnUsers[i].FriendListOwner.UUID.ToString(); | 108 | responseData["ownerID" + i] = returnUsers[i].FriendListOwner.UUID.ToString(); |
109 | responseData["friendID" + i.ToString()] = returnUsers[i].Friend.UUID.ToString(); | 109 | responseData["friendID" + i] = returnUsers[i].Friend.UUID.ToString(); |
110 | responseData["ownerPerms" + i.ToString()] = returnUsers[i].FriendListOwnerPerms.ToString(); | 110 | responseData["ownerPerms" + i] = returnUsers[i].FriendListOwnerPerms.ToString(); |
111 | responseData["friendPerms" + i.ToString()] = returnUsers[i].FriendPerms.ToString(); | 111 | responseData["friendPerms" + i] = returnUsers[i].FriendPerms.ToString(); |
112 | } | 112 | } |
113 | response.Value = responseData; | 113 | response.Value = responseData; |
114 | 114 | ||
@@ -156,6 +156,21 @@ namespace OpenSim.Grid.UserServer | |||
156 | return response; | 156 | return response; |
157 | } | 157 | } |
158 | 158 | ||
159 | public override UserProfileData SetupMasterUser(string firstName, string lastName) | ||
160 | { | ||
161 | throw new Exception("The method or operation is not implemented."); | ||
162 | } | ||
163 | |||
164 | public override UserProfileData SetupMasterUser(string firstName, string lastName, string password) | ||
165 | { | ||
166 | throw new Exception("The method or operation is not implemented."); | ||
167 | } | ||
168 | |||
169 | public override UserProfileData SetupMasterUser(LLUUID uuid) | ||
170 | { | ||
171 | throw new Exception("The method or operation is not implemented."); | ||
172 | } | ||
173 | |||
159 | #region XMLRPC User Methods | 174 | #region XMLRPC User Methods |
160 | 175 | ||
161 | public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request) | 176 | public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request) |
@@ -178,15 +193,16 @@ namespace OpenSim.Grid.UserServer | |||
178 | public XmlRpcResponse XmlRpcResponseXmlRPCAddUserFriend(XmlRpcRequest request) | 193 | public XmlRpcResponse XmlRpcResponseXmlRPCAddUserFriend(XmlRpcRequest request) |
179 | { | 194 | { |
180 | XmlRpcResponse response = new XmlRpcResponse(); | 195 | XmlRpcResponse response = new XmlRpcResponse(); |
181 | Hashtable requestData = (Hashtable)request.Params[0]; | 196 | Hashtable requestData = (Hashtable) request.Params[0]; |
182 | Hashtable responseData = new Hashtable(); | 197 | Hashtable responseData = new Hashtable(); |
183 | string returnString = "FALSE"; | 198 | string returnString = "FALSE"; |
184 | // Query Result Information | 199 | // Query Result Information |
185 | 200 | ||
186 | if (requestData.Contains("ownerID") && requestData.Contains("friendID") && requestData.Contains("friendPerms")) | 201 | if (requestData.Contains("ownerID") && requestData.Contains("friendID") && requestData.Contains("friendPerms")) |
187 | { | 202 | { |
188 | // UserManagerBase.AddNewuserFriend | 203 | // UserManagerBase.AddNewuserFriend |
189 | AddNewUserFriend(new LLUUID((string)requestData["ownerID"]), new LLUUID((string)requestData["friendID"]), (uint)Convert.ToInt32((string)requestData["friendPerms"])); | 204 | AddNewUserFriend(new LLUUID((string) requestData["ownerID"]), new LLUUID((string) requestData["friendID"]), |
205 | (uint) Convert.ToInt32((string) requestData["friendPerms"])); | ||
190 | returnString = "TRUE"; | 206 | returnString = "TRUE"; |
191 | } | 207 | } |
192 | responseData["returnString"] = returnString; | 208 | responseData["returnString"] = returnString; |
@@ -197,15 +213,15 @@ namespace OpenSim.Grid.UserServer | |||
197 | public XmlRpcResponse XmlRpcResponseXmlRPCRemoveUserFriend(XmlRpcRequest request) | 213 | public XmlRpcResponse XmlRpcResponseXmlRPCRemoveUserFriend(XmlRpcRequest request) |
198 | { | 214 | { |
199 | XmlRpcResponse response = new XmlRpcResponse(); | 215 | XmlRpcResponse response = new XmlRpcResponse(); |
200 | Hashtable requestData = (Hashtable)request.Params[0]; | 216 | Hashtable requestData = (Hashtable) request.Params[0]; |
201 | Hashtable responseData = new Hashtable(); | 217 | Hashtable responseData = new Hashtable(); |
202 | string returnString = "FALSE"; | 218 | string returnString = "FALSE"; |
203 | // Query Result Information | 219 | // Query Result Information |
204 | 220 | ||
205 | if (requestData.Contains("ownerID") && requestData.Contains("friendID")) | 221 | if (requestData.Contains("ownerID") && requestData.Contains("friendID")) |
206 | { | 222 | { |
207 | // UserManagerBase.AddNewuserFriend | 223 | // UserManagerBase.AddNewuserFriend |
208 | RemoveUserFriend(new LLUUID((string)requestData["ownerID"]), new LLUUID((string)requestData["friendID"])); | 224 | RemoveUserFriend(new LLUUID((string) requestData["ownerID"]), new LLUUID((string) requestData["friendID"])); |
209 | returnString = "TRUE"; | 225 | returnString = "TRUE"; |
210 | } | 226 | } |
211 | responseData["returnString"] = returnString; | 227 | responseData["returnString"] = returnString; |
@@ -216,13 +232,14 @@ namespace OpenSim.Grid.UserServer | |||
216 | public XmlRpcResponse XmlRpcResponseXmlRPCUpdateUserFriendPerms(XmlRpcRequest request) | 232 | public XmlRpcResponse XmlRpcResponseXmlRPCUpdateUserFriendPerms(XmlRpcRequest request) |
217 | { | 233 | { |
218 | XmlRpcResponse response = new XmlRpcResponse(); | 234 | XmlRpcResponse response = new XmlRpcResponse(); |
219 | Hashtable requestData = (Hashtable)request.Params[0]; | 235 | Hashtable requestData = (Hashtable) request.Params[0]; |
220 | Hashtable responseData = new Hashtable(); | 236 | Hashtable responseData = new Hashtable(); |
221 | string returnString = "FALSE"; | 237 | string returnString = "FALSE"; |
222 | 238 | ||
223 | if (requestData.Contains("ownerID") && requestData.Contains("friendID") && requestData.Contains("friendPerms")) | 239 | if (requestData.Contains("ownerID") && requestData.Contains("friendID") && requestData.Contains("friendPerms")) |
224 | { | 240 | { |
225 | UpdateUserFriendPerms(new LLUUID((string)requestData["ownerID"]), new LLUUID((string)requestData["friendID"]), (uint)Convert.ToInt32((string)requestData["friendPerms"])); | 241 | UpdateUserFriendPerms(new LLUUID((string) requestData["ownerID"]), new LLUUID((string) requestData["friendID"]), |
242 | (uint) Convert.ToInt32((string) requestData["friendPerms"])); | ||
226 | // UserManagerBase. | 243 | // UserManagerBase. |
227 | returnString = "TRUE"; | 244 | returnString = "TRUE"; |
228 | } | 245 | } |
@@ -234,16 +251,16 @@ namespace OpenSim.Grid.UserServer | |||
234 | public XmlRpcResponse XmlRpcResponseXmlRPCGetUserFriendList(XmlRpcRequest request) | 251 | public XmlRpcResponse XmlRpcResponseXmlRPCGetUserFriendList(XmlRpcRequest request) |
235 | { | 252 | { |
236 | XmlRpcResponse response = new XmlRpcResponse(); | 253 | XmlRpcResponse response = new XmlRpcResponse(); |
237 | Hashtable requestData = (Hashtable)request.Params[0]; | 254 | Hashtable requestData = (Hashtable) request.Params[0]; |
238 | Hashtable responseData = new Hashtable(); | 255 | Hashtable responseData = new Hashtable(); |
239 | 256 | ||
240 | List<FriendListItem> returndata = new List<FriendListItem>(); | 257 | List<FriendListItem> returndata = new List<FriendListItem>(); |
241 | 258 | ||
242 | if (requestData.Contains("ownerID")) | 259 | if (requestData.Contains("ownerID")) |
243 | { | 260 | { |
244 | returndata = this.GetUserFriendList(new LLUUID((string)requestData["ownerID"])); | 261 | returndata = GetUserFriendList(new LLUUID((string) requestData["ownerID"])); |
245 | } | 262 | } |
246 | 263 | ||
247 | return FriendListItemListtoXmlRPCResponse(returndata); | 264 | return FriendListItemListtoXmlRPCResponse(returndata); |
248 | } | 265 | } |
249 | 266 | ||
@@ -321,7 +338,7 @@ namespace OpenSim.Grid.UserServer | |||
321 | { | 338 | { |
322 | m_log.Debug("[UserManager]: Got request to update user profile"); | 339 | m_log.Debug("[UserManager]: Got request to update user profile"); |
323 | XmlRpcResponse response = new XmlRpcResponse(); | 340 | XmlRpcResponse response = new XmlRpcResponse(); |
324 | Hashtable requestData = (Hashtable)request.Params[0]; | 341 | Hashtable requestData = (Hashtable) request.Params[0]; |
325 | Hashtable responseData = new Hashtable(); | 342 | Hashtable responseData = new Hashtable(); |
326 | 343 | ||
327 | UserProfileData userProfile; | 344 | UserProfileData userProfile; |
@@ -330,7 +347,7 @@ namespace OpenSim.Grid.UserServer | |||
330 | return CreateUnknownUserErrorResponse(); | 347 | return CreateUnknownUserErrorResponse(); |
331 | } | 348 | } |
332 | 349 | ||
333 | LLUUID UserUUID = new LLUUID((string)requestData["avatar_uuid"]); | 350 | LLUUID UserUUID = new LLUUID((string) requestData["avatar_uuid"]); |
334 | userProfile = GetUserProfile(UserUUID); | 351 | userProfile = GetUserProfile(UserUUID); |
335 | if (null == userProfile) | 352 | if (null == userProfile) |
336 | { | 353 | { |
@@ -342,33 +359,33 @@ namespace OpenSim.Grid.UserServer | |||
342 | } | 359 | } |
343 | if (requestData.Contains("FLImageID")) | 360 | if (requestData.Contains("FLImageID")) |
344 | { | 361 | { |
345 | userProfile.FirstLifeImage = new LLUUID((string)requestData["FLImageID"]); | 362 | userProfile.FirstLifeImage = new LLUUID((string) requestData["FLImageID"]); |
346 | } | 363 | } |
347 | if (requestData.Contains("ImageID")) | 364 | if (requestData.Contains("ImageID")) |
348 | { | 365 | { |
349 | userProfile.Image = new LLUUID((string)requestData["ImageID"]); | 366 | userProfile.Image = new LLUUID((string) requestData["ImageID"]); |
350 | } | 367 | } |
351 | // dont' know how yet | 368 | // dont' know how yet |
352 | if (requestData.Contains("MaturePublish")) | 369 | if (requestData.Contains("MaturePublish")) |
353 | { | 370 | { |
354 | } | 371 | } |
355 | if (requestData.Contains("AboutText")) | 372 | if (requestData.Contains("AboutText")) |
356 | { | 373 | { |
357 | userProfile.AboutText = (string)requestData["AboutText"]; | 374 | userProfile.AboutText = (string) requestData["AboutText"]; |
358 | } | 375 | } |
359 | if (requestData.Contains("FLAboutText")) | 376 | if (requestData.Contains("FLAboutText")) |
360 | { | 377 | { |
361 | userProfile.FirstLifeAboutText = (string)requestData["FLAboutText"]; | 378 | userProfile.FirstLifeAboutText = (string) requestData["FLAboutText"]; |
362 | } | 379 | } |
363 | // not in DB yet. | 380 | // not in DB yet. |
364 | if (requestData.Contains("ProfileURL")) | 381 | if (requestData.Contains("ProfileURL")) |
365 | { | 382 | { |
366 | } | 383 | } |
367 | if (requestData.Contains("home_region")) | 384 | if (requestData.Contains("home_region")) |
368 | { | 385 | { |
369 | try | 386 | try |
370 | { | 387 | { |
371 | userProfile.HomeRegion = Convert.ToUInt64((string)requestData["home_region"]); | 388 | userProfile.HomeRegion = Convert.ToUInt64((string) requestData["home_region"]); |
372 | } | 389 | } |
373 | catch (ArgumentException) | 390 | catch (ArgumentException) |
374 | { | 391 | { |
@@ -382,25 +399,23 @@ namespace OpenSim.Grid.UserServer | |||
382 | { | 399 | { |
383 | m_log.Error("[PROFILE]:Failed to set home region, Value was too large"); | 400 | m_log.Error("[PROFILE]:Failed to set home region, Value was too large"); |
384 | } | 401 | } |
385 | |||
386 | } | 402 | } |
387 | if (requestData.Contains("home_pos_x")) | 403 | if (requestData.Contains("home_pos_x")) |
388 | { | 404 | { |
389 | try | 405 | try |
390 | { | 406 | { |
391 | userProfile.HomeLocationX = (float)Convert.ToDecimal((string)requestData["home_pos_x"]); | 407 | userProfile.HomeLocationX = (float) Convert.ToDecimal((string) requestData["home_pos_x"]); |
392 | } | 408 | } |
393 | catch (InvalidCastException) | 409 | catch (InvalidCastException) |
394 | { | 410 | { |
395 | m_log.Error("[PROFILE]:Failed to set home postion x"); | 411 | m_log.Error("[PROFILE]:Failed to set home postion x"); |
396 | } | 412 | } |
397 | |||
398 | } | 413 | } |
399 | if (requestData.Contains("home_pos_y")) | 414 | if (requestData.Contains("home_pos_y")) |
400 | { | 415 | { |
401 | try | 416 | try |
402 | { | 417 | { |
403 | userProfile.HomeLocationY = (float)Convert.ToDecimal((string)requestData["home_pos_y"]); | 418 | userProfile.HomeLocationY = (float) Convert.ToDecimal((string) requestData["home_pos_y"]); |
404 | } | 419 | } |
405 | catch (InvalidCastException) | 420 | catch (InvalidCastException) |
406 | { | 421 | { |
@@ -411,7 +426,7 @@ namespace OpenSim.Grid.UserServer | |||
411 | { | 426 | { |
412 | try | 427 | try |
413 | { | 428 | { |
414 | userProfile.HomeLocationZ = (float)Convert.ToDecimal((string)requestData["home_pos_z"]); | 429 | userProfile.HomeLocationZ = (float) Convert.ToDecimal((string) requestData["home_pos_z"]); |
415 | } | 430 | } |
416 | catch (InvalidCastException) | 431 | catch (InvalidCastException) |
417 | { | 432 | { |
@@ -422,7 +437,7 @@ namespace OpenSim.Grid.UserServer | |||
422 | { | 437 | { |
423 | try | 438 | try |
424 | { | 439 | { |
425 | userProfile.HomeLookAtX = (float)Convert.ToDecimal((string)requestData["home_look_x"]); | 440 | userProfile.HomeLookAtX = (float) Convert.ToDecimal((string) requestData["home_look_x"]); |
426 | } | 441 | } |
427 | catch (InvalidCastException) | 442 | catch (InvalidCastException) |
428 | { | 443 | { |
@@ -433,7 +448,7 @@ namespace OpenSim.Grid.UserServer | |||
433 | { | 448 | { |
434 | try | 449 | try |
435 | { | 450 | { |
436 | userProfile.HomeLookAtY = (float)Convert.ToDecimal((string)requestData["home_look_y"]); | 451 | userProfile.HomeLookAtY = (float) Convert.ToDecimal((string) requestData["home_look_y"]); |
437 | } | 452 | } |
438 | catch (InvalidCastException) | 453 | catch (InvalidCastException) |
439 | { | 454 | { |
@@ -442,9 +457,9 @@ namespace OpenSim.Grid.UserServer | |||
442 | } | 457 | } |
443 | if (requestData.Contains("home_look_z")) | 458 | if (requestData.Contains("home_look_z")) |
444 | { | 459 | { |
445 | try | 460 | try |
446 | { | 461 | { |
447 | userProfile.HomeLookAtZ = (float)Convert.ToDecimal((string)requestData["home_look_z"]); | 462 | userProfile.HomeLookAtZ = (float) Convert.ToDecimal((string) requestData["home_look_z"]); |
448 | } | 463 | } |
449 | catch (InvalidCastException) | 464 | catch (InvalidCastException) |
450 | { | 465 | { |
@@ -461,18 +476,18 @@ namespace OpenSim.Grid.UserServer | |||
461 | public XmlRpcResponse XmlRPCLogOffUserMethodUUID(XmlRpcRequest request) | 476 | public XmlRpcResponse XmlRPCLogOffUserMethodUUID(XmlRpcRequest request) |
462 | { | 477 | { |
463 | XmlRpcResponse response = new XmlRpcResponse(); | 478 | XmlRpcResponse response = new XmlRpcResponse(); |
464 | Hashtable requestData = (Hashtable)request.Params[0]; | 479 | Hashtable requestData = (Hashtable) request.Params[0]; |
465 | 480 | ||
466 | if (requestData.Contains("avatar_uuid")) | 481 | if (requestData.Contains("avatar_uuid")) |
467 | { | 482 | { |
468 | try | 483 | try |
469 | { | 484 | { |
470 | LLUUID userUUID = new LLUUID((string)requestData["avatar_uuid"]); | 485 | LLUUID userUUID = new LLUUID((string) requestData["avatar_uuid"]); |
471 | LLUUID RegionID = new LLUUID((string)requestData["region_uuid"]); | 486 | LLUUID RegionID = new LLUUID((string) requestData["region_uuid"]); |
472 | ulong regionhandle = (ulong)Convert.ToInt64((string)requestData["region_handle"]); | 487 | ulong regionhandle = (ulong) Convert.ToInt64((string) requestData["region_handle"]); |
473 | float posx = (float)Convert.ToDecimal((string)requestData["region_pos_x"]); | 488 | float posx = (float) Convert.ToDecimal((string) requestData["region_pos_x"]); |
474 | float posy = (float)Convert.ToDecimal((string)requestData["region_pos_y"]); | 489 | float posy = (float) Convert.ToDecimal((string) requestData["region_pos_y"]); |
475 | float posz = (float)Convert.ToDecimal((string)requestData["region_pos_z"]); | 490 | float posz = (float) Convert.ToDecimal((string) requestData["region_pos_z"]); |
476 | 491 | ||
477 | handlerLogOffUser = OnLogOffUser; | 492 | handlerLogOffUser = OnLogOffUser; |
478 | if (handlerLogOffUser != null) | 493 | if (handlerLogOffUser != null) |
@@ -495,20 +510,5 @@ namespace OpenSim.Grid.UserServer | |||
495 | } | 510 | } |
496 | 511 | ||
497 | #endregion | 512 | #endregion |
498 | |||
499 | public override UserProfileData SetupMasterUser(string firstName, string lastName) | ||
500 | { | ||
501 | throw new Exception("The method or operation is not implemented."); | ||
502 | } | ||
503 | |||
504 | public override UserProfileData SetupMasterUser(string firstName, string lastName, string password) | ||
505 | { | ||
506 | throw new Exception("The method or operation is not implemented."); | ||
507 | } | ||
508 | |||
509 | public override UserProfileData SetupMasterUser(LLUUID uuid) | ||
510 | { | ||
511 | throw new Exception("The method or operation is not implemented."); | ||
512 | } | ||
513 | } | 513 | } |
514 | } | 514 | } \ No newline at end of file |
diff --git a/ThirdParty/3Di/LoadBalancer/LoadBalancerPlugin.cs b/ThirdParty/3Di/LoadBalancer/LoadBalancerPlugin.cs index 6d593c9..af979a6 100644 --- a/ThirdParty/3Di/LoadBalancer/LoadBalancerPlugin.cs +++ b/ThirdParty/3Di/LoadBalancer/LoadBalancerPlugin.cs | |||
@@ -52,12 +52,12 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
52 | public class LoadBalancerPlugin : IApplicationPlugin | 52 | public class LoadBalancerPlugin : IApplicationPlugin |
53 | { | 53 | { |
54 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 54 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
55 | private readonly object padlock = new object(); | ||
55 | 56 | ||
56 | private BaseHttpServer commandServer; | 57 | private BaseHttpServer commandServer; |
57 | private bool[] isLocalNeighbour; | 58 | private bool[] isLocalNeighbour; |
58 | private bool isSplit = false; | 59 | private bool isSplit; |
59 | private TcpServer mTcpServer; | 60 | private TcpServer mTcpServer; |
60 | private object padlock = new object(); | ||
61 | 61 | ||
62 | private int proxyOffset; | 62 | private int proxyOffset; |
63 | private string proxyURL; | 63 | private string proxyURL; |
@@ -80,8 +80,8 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
80 | if (proxyURL.Length == 0) return; | 80 | if (proxyURL.Length == 0) return; |
81 | 81 | ||
82 | StartTcpServer(); | 82 | StartTcpServer(); |
83 | ClientView.SynchronizeClient = new ClientView.SynchronizeClientHandler(SynchronizePackets); | 83 | ClientView.SynchronizeClient = SynchronizePackets; |
84 | AsynchronousSocketListener.PacketHandler = new AsynchronousSocketListener.PacketRecieveHandler(SynchronizePacketRecieve); | 84 | AsynchronousSocketListener.PacketHandler = SynchronizePacketRecieve; |
85 | 85 | ||
86 | sceneManager = openSim.SceneManager; | 86 | sceneManager = openSim.SceneManager; |
87 | udpServers = openSim.UdpServers; | 87 | udpServers = openSim.UdpServers; |
@@ -146,7 +146,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
146 | { | 146 | { |
147 | ClientView client = (ClientView) pre.ControllingClient; | 147 | ClientView client = (ClientView) pre.ControllingClient; |
148 | //if(pre.MovementFlag!=0 && client.PacketProcessingEnabled==true) { | 148 | //if(pre.MovementFlag!=0 && client.PacketProcessingEnabled==true) { |
149 | if (client.PacketProcessingEnabled == true) | 149 | if (client.PacketProcessingEnabled) |
150 | { | 150 | { |
151 | get_scene_presence_filter++; | 151 | get_scene_presence_filter++; |
152 | } | 152 | } |
@@ -159,7 +159,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
159 | { | 159 | { |
160 | ClientView client = (ClientView) pre.ControllingClient; | 160 | ClientView client = (ClientView) pre.ControllingClient; |
161 | //if(pre.MovementFlag!=0 && client.PacketProcessingEnabled==true) { | 161 | //if(pre.MovementFlag!=0 && client.PacketProcessingEnabled==true) { |
162 | if (client.PacketProcessingEnabled == true) | 162 | if (client.PacketProcessingEnabled) |
163 | { | 163 | { |
164 | get_avatar_filter++; | 164 | get_avatar_filter++; |
165 | avatar_names += pre.Firstname + " " + pre.Lastname + "; "; | 165 | avatar_names += pre.Firstname + " " + pre.Lastname + "; "; |
@@ -178,7 +178,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
178 | } | 178 | } |
179 | catch (Exception e) | 179 | catch (Exception e) |
180 | { | 180 | { |
181 | m_log.Error("[BALANCER] " + e.ToString()); | 181 | m_log.Error("[BALANCER] " + e); |
182 | m_log.Error("[BALANCER] " + e.StackTrace); | 182 | m_log.Error("[BALANCER] " + e.StackTrace); |
183 | } | 183 | } |
184 | return response; | 184 | return response; |
@@ -199,7 +199,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
199 | } | 199 | } |
200 | catch (Exception e) | 200 | catch (Exception e) |
201 | { | 201 | { |
202 | m_log.Error("[BALANCER] " + e.ToString()); | 202 | m_log.Error("[BALANCER] " + e); |
203 | m_log.Error("[BALANCER] " + e.StackTrace); | 203 | m_log.Error("[BALANCER] " + e.StackTrace); |
204 | } | 204 | } |
205 | 205 | ||
@@ -223,7 +223,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
223 | } | 223 | } |
224 | catch (Exception e) | 224 | catch (Exception e) |
225 | { | 225 | { |
226 | m_log.Error("[BALANCER] " + e.ToString()); | 226 | m_log.Error("[BALANCER] " + e); |
227 | m_log.Error("[BALANCER] " + e.StackTrace); | 227 | m_log.Error("[BALANCER] " + e.StackTrace); |
228 | } | 228 | } |
229 | 229 | ||
@@ -247,7 +247,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
247 | } | 247 | } |
248 | catch (Exception e) | 248 | catch (Exception e) |
249 | { | 249 | { |
250 | m_log.Error("[BALANCER] " + e.ToString()); | 250 | m_log.Error("[BALANCER] " + e); |
251 | m_log.Error("[BALANCER] " + e.StackTrace); | 251 | m_log.Error("[BALANCER] " + e.StackTrace); |
252 | throw e; | 252 | throw e; |
253 | } | 253 | } |
@@ -264,14 +264,14 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
264 | int src_port = (int) request.Params[0]; | 264 | int src_port = (int) request.Params[0]; |
265 | 265 | ||
266 | // backgroud | 266 | // backgroud |
267 | WaitCallback callback = new WaitCallback(TerminateRegion); | 267 | WaitCallback callback = TerminateRegion; |
268 | ThreadPool.QueueUserWorkItem(callback, src_port); | 268 | ThreadPool.QueueUserWorkItem(callback, src_port); |
269 | 269 | ||
270 | m_log.Info("[BALANCER] " + "Exiting TerminateRegion()"); | 270 | m_log.Info("[BALANCER] " + "Exiting TerminateRegion()"); |
271 | } | 271 | } |
272 | catch (Exception e) | 272 | catch (Exception e) |
273 | { | 273 | { |
274 | m_log.Error("[BALANCER] " + e.ToString()); | 274 | m_log.Error("[BALANCER] " + e); |
275 | m_log.Error("[BALANCER] " + e.StackTrace); | 275 | m_log.Error("[BALANCER] " + e.StackTrace); |
276 | } | 276 | } |
277 | 277 | ||
@@ -330,8 +330,8 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
330 | dst_region = DeserializeRegion(dst_port, false, serializeDir); | 330 | dst_region = DeserializeRegion(dst_port, false, serializeDir); |
331 | 331 | ||
332 | // Decide who is in charge for each section | 332 | // Decide who is in charge for each section |
333 | int[] port = new int[] {src_port, dst_port}; | 333 | int[] port = new[] {src_port, dst_port}; |
334 | string[] url = new string[] {"http://" + src_url + ":" + commandServer.Port, "http://" + dst_url + ":" + commandServer.Port}; | 334 | string[] url = new[] {"http://" + src_url + ":" + commandServer.Port, "http://" + dst_url + ":" + commandServer.Port}; |
335 | for (int i = 0; i < 2; i++) Util.XmlRpcCommand(url[i], "SplitRegion", i, 2, port[0], port[1], url[0], url[1]); | 335 | for (int i = 0; i < 2; i++) Util.XmlRpcCommand(url[i], "SplitRegion", i, 2, port[0], port[1], url[0], url[1]); |
336 | 336 | ||
337 | // Enable the proxy | 337 | // Enable the proxy |
@@ -424,7 +424,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
424 | // serialization of region data | 424 | // serialization of region data |
425 | SearializableRegionInfo dst_region = new SearializableRegionInfo(src_region); | 425 | SearializableRegionInfo dst_region = new SearializableRegionInfo(src_region); |
426 | 426 | ||
427 | filename = export_dir + "RegionInfo_" + src_region.RegionID.ToString() + ".bin"; | 427 | filename = export_dir + "RegionInfo_" + src_region.RegionID + ".bin"; |
428 | Util.SerializeToFile(filename, dst_region); | 428 | Util.SerializeToFile(filename, dst_region); |
429 | 429 | ||
430 | // backup current scene's entities | 430 | // backup current scene's entities |
@@ -451,7 +451,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
451 | { | 451 | { |
452 | ClientInfo info = controller.GetClientInfo(); | 452 | ClientInfo info = controller.GetClientInfo(); |
453 | 453 | ||
454 | filename = export_dir + "ClientInfo-" + String.Format("{0:0000}", idx) + "_" + controller.CircuitCode.ToString() + ".bin"; | 454 | filename = export_dir + "ClientInfo-" + String.Format("{0:0000}", idx) + "_" + controller.CircuitCode + ".bin"; |
455 | 455 | ||
456 | Util.SerializeToFile(filename, info); | 456 | Util.SerializeToFile(filename, info); |
457 | 457 | ||
@@ -469,13 +469,12 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
469 | 469 | ||
470 | private RegionInfo DeserializeRegion(int dst_port, bool move_flag, string import_dir) | 470 | private RegionInfo DeserializeRegion(int dst_port, bool move_flag, string import_dir) |
471 | { | 471 | { |
472 | string[] files = null; | ||
473 | RegionInfo dst_region = null; | 472 | RegionInfo dst_region = null; |
474 | 473 | ||
475 | try | 474 | try |
476 | { | 475 | { |
477 | // deserialization of region data | 476 | // deserialization of region data |
478 | files = Directory.GetFiles(import_dir, "RegionInfo_*.bin"); | 477 | string[] files = Directory.GetFiles(import_dir, "RegionInfo_*.bin"); |
479 | 478 | ||
480 | foreach (string filename in files) | 479 | foreach (string filename in files) |
481 | { | 480 | { |
@@ -503,7 +502,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
503 | } | 502 | } |
504 | catch (Exception e) | 503 | catch (Exception e) |
505 | { | 504 | { |
506 | m_log.Error("[BALANCER] " + e.ToString()); | 505 | m_log.Error("[BALANCER] " + e); |
507 | m_log.Error("[BALANCER] " + e.StackTrace); | 506 | m_log.Error("[BALANCER] " + e.StackTrace); |
508 | throw e; | 507 | throw e; |
509 | } | 508 | } |
@@ -593,7 +592,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
593 | 592 | ||
594 | // change RegionInfo (memory only) | 593 | // change RegionInfo (memory only) |
595 | dst_region.InternalEndPoint.Port = dst_port; | 594 | dst_region.InternalEndPoint.Port = dst_port; |
596 | dst_region.ExternalHostName = proxyURL.Split(new char[] {'/', ':'})[3]; | 595 | dst_region.ExternalHostName = proxyURL.Split(new[] {'/', ':'})[3]; |
597 | 596 | ||
598 | // Create new region | 597 | // Create new region |
599 | simMain.CreateRegion(dst_region, false); | 598 | simMain.CreateRegion(dst_region, false); |
@@ -695,7 +694,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
695 | 694 | ||
696 | for (int i = 0; i < numRegions; i++) | 695 | for (int i = 0; i < numRegions; i++) |
697 | { | 696 | { |
698 | hostname = sceneURL[i].Split(new char[] {'/', ':'})[3]; | 697 | hostname = sceneURL[i].Split(new[] {'/', ':'})[3]; |
699 | m_log.InfoFormat("[SPLITSCENE] " + "creating tcp client host:{0}", hostname); | 698 | m_log.InfoFormat("[SPLITSCENE] " + "creating tcp client host:{0}", hostname); |
700 | tcpClientList[i] = new TcpClient(hostname, 10001); | 699 | tcpClientList[i] = new TcpClient(hostname, 10001); |
701 | } | 700 | } |
@@ -731,12 +730,11 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
731 | List<uint> circuits = scene.ClientManager.GetAllCircuitCodes(); | 730 | List<uint> circuits = scene.ClientManager.GetAllCircuitCodes(); |
732 | circuits.Sort(); | 731 | circuits.Sort(); |
733 | 732 | ||
734 | IClientAPI controller = null; | ||
735 | |||
736 | foreach (uint code in circuits) | 733 | foreach (uint code in circuits) |
737 | { | 734 | { |
738 | m_log.InfoFormat("[BALANCER] " + "circuit code : {0}", code); | 735 | m_log.InfoFormat("[BALANCER] " + "circuit code : {0}", code); |
739 | 736 | ||
737 | IClientAPI controller; | ||
740 | if (scene.ClientManager.TryGetClient(code, out controller)) | 738 | if (scene.ClientManager.TryGetClient(code, out controller)) |
741 | { | 739 | { |
742 | // Divide the presences evenly over the set of subscenes | 740 | // Divide the presences evenly over the set of subscenes |
@@ -756,7 +754,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
756 | } | 754 | } |
757 | 755 | ||
758 | scene.splitID = myID; | 756 | scene.splitID = myID; |
759 | scene.SynchronizeScene = new Scene.SynchronizeSceneHandler(SynchronizeScenes); | 757 | scene.SynchronizeScene = SynchronizeScenes; |
760 | isSplit = true; | 758 | isSplit = true; |
761 | } | 759 | } |
762 | else | 760 | else |
@@ -766,7 +764,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
766 | } | 764 | } |
767 | catch (Exception e) | 765 | catch (Exception e) |
768 | { | 766 | { |
769 | m_log.Error("[SPLITSCENE] " + e.ToString()); | 767 | m_log.Error("[SPLITSCENE] " + e); |
770 | m_log.Error("[SPLITSCENE] " + e.StackTrace); | 768 | m_log.Error("[SPLITSCENE] " + e.StackTrace); |
771 | } | 769 | } |
772 | 770 | ||
@@ -820,7 +818,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
820 | } | 818 | } |
821 | catch (Exception e) | 819 | catch (Exception e) |
822 | { | 820 | { |
823 | m_log.Error("[BALANCER] " + e.ToString()); | 821 | m_log.Error("[BALANCER] " + e); |
824 | m_log.Error("[BALANCER] " + e.StackTrace); | 822 | m_log.Error("[BALANCER] " + e.StackTrace); |
825 | throw e; | 823 | throw e; |
826 | } | 824 | } |
@@ -893,7 +891,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
893 | // Because data changes by the physics simulation when the client doesn't move, | 891 | // Because data changes by the physics simulation when the client doesn't move, |
894 | // if MovementFlag is false, It is necessary to synchronize. | 892 | // if MovementFlag is false, It is necessary to synchronize. |
895 | //if(pre.MovementFlag!=0 && client.PacketProcessingEnabled==true) | 893 | //if(pre.MovementFlag!=0 && client.PacketProcessingEnabled==true) |
896 | if (client.PacketProcessingEnabled == true) | 894 | if (client.PacketProcessingEnabled) |
897 | { | 895 | { |
898 | //m_log.Info("[SPLITSCENE] "+String.Format("Client moving in {0} {1}", scene.RegionInfo.RegionID, pre.AbsolutePosition)); | 896 | //m_log.Info("[SPLITSCENE] "+String.Format("Client moving in {0} {1}", scene.RegionInfo.RegionID, pre.AbsolutePosition)); |
899 | 897 | ||
@@ -1016,7 +1014,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
1016 | return; | 1014 | return; |
1017 | } | 1015 | } |
1018 | 1016 | ||
1019 | if (((ClientView) pre.ControllingClient).PacketProcessingEnabled == true) | 1017 | if (((ClientView) pre.ControllingClient).PacketProcessingEnabled) |
1020 | { | 1018 | { |
1021 | pre.ControllingClient.OutPacket(packet, throttlePacketType); | 1019 | pre.ControllingClient.OutPacket(packet, throttlePacketType); |
1022 | } | 1020 | } |
@@ -1060,7 +1058,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
1060 | } | 1058 | } |
1061 | catch (Exception e) | 1059 | catch (Exception e) |
1062 | { | 1060 | { |
1063 | m_log.Error("[SPLITSCENE] " + e.ToString()); | 1061 | m_log.Error("[SPLITSCENE] " + e); |
1064 | m_log.Error("[SPLITSCENE] " + e.StackTrace); | 1062 | m_log.Error("[SPLITSCENE] " + e.StackTrace); |
1065 | } | 1063 | } |
1066 | 1064 | ||
@@ -1072,7 +1070,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
1072 | LLUUID scenePresenceID = new LLUUID(header.agent_id); | 1070 | LLUUID scenePresenceID = new LLUUID(header.agent_id); |
1073 | LLVector3 position = new LLVector3(buff, 0); | 1071 | LLVector3 position = new LLVector3(buff, 0); |
1074 | LLVector3 velocity = new LLVector3(buff, 12); | 1072 | LLVector3 velocity = new LLVector3(buff, 12); |
1075 | bool flying = ((buff[24] == (byte) 1) ? true : false); | 1073 | bool flying = ((buff[24] == 1) ? true : false); |
1076 | 1074 | ||
1077 | LocalUpdatePhysics(regionPort, scenePresenceID, position, velocity, flying); | 1075 | LocalUpdatePhysics(regionPort, scenePresenceID, position, velocity, flying); |
1078 | 1076 | ||
diff --git a/ThirdParty/3Di/LoadBalancer/TcpClient.cs b/ThirdParty/3Di/LoadBalancer/TcpClient.cs index af678a0..e9e019c 100644 --- a/ThirdParty/3Di/LoadBalancer/TcpClient.cs +++ b/ThirdParty/3Di/LoadBalancer/TcpClient.cs | |||
@@ -34,8 +34,8 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
34 | { | 34 | { |
35 | public class AsynchronousClient | 35 | public class AsynchronousClient |
36 | { | 36 | { |
37 | private static ManualResetEvent connectDone = new ManualResetEvent(false); | 37 | private static readonly ManualResetEvent connectDone = new ManualResetEvent(false); |
38 | private static ManualResetEvent sendDone = new ManualResetEvent(false); | 38 | private static readonly ManualResetEvent sendDone = new ManualResetEvent(false); |
39 | 39 | ||
40 | public static Socket StartClient(string hostname, int port) | 40 | public static Socket StartClient(string hostname, int port) |
41 | { | 41 | { |
@@ -46,7 +46,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
46 | IPEndPoint remoteEP = new IPEndPoint(ipAddress, port); | 46 | IPEndPoint remoteEP = new IPEndPoint(ipAddress, port); |
47 | 47 | ||
48 | Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); | 48 | Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); |
49 | client.BeginConnect(remoteEP, new AsyncCallback(ConnectCallback), client); | 49 | client.BeginConnect(remoteEP, ConnectCallback, client); |
50 | connectDone.WaitOne(); | 50 | connectDone.WaitOne(); |
51 | /* | 51 | /* |
52 | Send(client,"This is a test<EOF>"); | 52 | Send(client,"This is a test<EOF>"); |
@@ -71,7 +71,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
71 | { | 71 | { |
72 | Socket client = (Socket) ar.AsyncState; | 72 | Socket client = (Socket) ar.AsyncState; |
73 | client.EndConnect(ar); | 73 | client.EndConnect(ar); |
74 | Console.WriteLine("Socket connected to {0}", client.RemoteEndPoint.ToString()); | 74 | Console.WriteLine("Socket connected to {0}", client.RemoteEndPoint); |
75 | connectDone.Set(); | 75 | connectDone.Set(); |
76 | } | 76 | } |
77 | catch (Exception e) | 77 | catch (Exception e) |
@@ -138,8 +138,8 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
138 | 138 | ||
139 | public class InternalPacketHeader | 139 | public class InternalPacketHeader |
140 | { | 140 | { |
141 | private readonly byte[] buffer = new byte[32]; | ||
141 | public Guid agent_id; | 142 | public Guid agent_id; |
142 | private byte[] buffer = new byte[32]; | ||
143 | public int numbytes; | 143 | public int numbytes; |
144 | public int region_port; | 144 | public int region_port; |
145 | public int throttlePacketType; | 145 | public int throttlePacketType; |
@@ -150,16 +150,16 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
150 | int i = 0; // offset | 150 | int i = 0; // offset |
151 | try | 151 | try |
152 | { | 152 | { |
153 | type = (int) (bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24)); | 153 | type = (bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24)); |
154 | throttlePacketType = (int) (bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24)); | 154 | throttlePacketType = (bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24)); |
155 | numbytes = (int) (bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24)); | 155 | numbytes = (bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24)); |
156 | agent_id = new Guid( | 156 | agent_id = new Guid( |
157 | bytes[i++] | (bytes[i++] << 8) | (bytes[i++] << 16) | bytes[i++] << 24, | 157 | bytes[i++] | (bytes[i++] << 8) | (bytes[i++] << 16) | bytes[i++] << 24, |
158 | (short) (bytes[i++] | (bytes[i++] << 8)), | 158 | (short) (bytes[i++] | (bytes[i++] << 8)), |
159 | (short) (bytes[i++] | (bytes[i++] << 8)), | 159 | (short) (bytes[i++] | (bytes[i++] << 8)), |
160 | bytes[i++], bytes[i++], bytes[i++], bytes[i++], | 160 | bytes[i++], bytes[i++], bytes[i++], bytes[i++], |
161 | bytes[i++], bytes[i++], bytes[i++], bytes[i++]); | 161 | bytes[i++], bytes[i++], bytes[i++], bytes[i++]); |
162 | region_port = (int) (bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24)); | 162 | region_port = (bytes[i++] + (bytes[i++] << 8) + (bytes[i++] << 16) + (bytes[i++] << 24)); |
163 | } | 163 | } |
164 | catch (Exception) | 164 | catch (Exception) |
165 | { | 165 | { |
@@ -201,10 +201,10 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
201 | public class TcpClient | 201 | public class TcpClient |
202 | { | 202 | { |
203 | public static int internalPacketHeaderSize = 4 * 4 + 16 * 1; | 203 | public static int internalPacketHeaderSize = 4 * 4 + 16 * 1; |
204 | private Socket mConnection; | ||
205 | 204 | ||
206 | private string mHostname; | 205 | private readonly string mHostname; |
207 | private int mPort; | 206 | private readonly int mPort; |
207 | private Socket mConnection; | ||
208 | 208 | ||
209 | public TcpClient(string hostname, int port) | 209 | public TcpClient(string hostname, int port) |
210 | { | 210 | { |
diff --git a/ThirdParty/3Di/LoadBalancer/TcpServer.cs b/ThirdParty/3Di/LoadBalancer/TcpServer.cs index 9722a1b..cd94b95 100644 --- a/ThirdParty/3Di/LoadBalancer/TcpServer.cs +++ b/ThirdParty/3Di/LoadBalancer/TcpServer.cs | |||
@@ -37,15 +37,15 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
37 | { | 37 | { |
38 | public const int BufferSize = 2048; | 38 | public const int BufferSize = 2048; |
39 | public byte[] buffer = new byte[BufferSize]; | 39 | public byte[] buffer = new byte[BufferSize]; |
40 | public InternalPacketHeader header = null; | 40 | public InternalPacketHeader header; |
41 | public MemoryStream ms_ptr = new MemoryStream(); | 41 | public MemoryStream ms_ptr = new MemoryStream(); |
42 | public Socket workSocket = null; | 42 | public Socket workSocket; |
43 | } | 43 | } |
44 | 44 | ||
45 | public class AsynchronousSocketListener | 45 | public class AsynchronousSocketListener |
46 | { | 46 | { |
47 | public static ManualResetEvent allDone = new ManualResetEvent(false); | 47 | public static ManualResetEvent allDone = new ManualResetEvent(false); |
48 | public static string data = null; | 48 | public static string data; |
49 | 49 | ||
50 | #region KIRYU | 50 | #region KIRYU |
51 | 51 | ||
@@ -55,14 +55,10 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
55 | 55 | ||
56 | #endregion | 56 | #endregion |
57 | 57 | ||
58 | public static PacketRecieveHandler PacketHandler = null; | 58 | public static PacketRecieveHandler PacketHandler; |
59 | 59 | ||
60 | #endregion | 60 | #endregion |
61 | 61 | ||
62 | public AsynchronousSocketListener() | ||
63 | { | ||
64 | } | ||
65 | |||
66 | public static void StartListening(int port) | 62 | public static void StartListening(int port) |
67 | { | 63 | { |
68 | IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); | 64 | IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName()); |
@@ -199,7 +195,7 @@ namespace OpenSim.ApplicationPlugins.LoadBalancer | |||
199 | 195 | ||
200 | public class TcpServer | 196 | public class TcpServer |
201 | { | 197 | { |
202 | private int mPort = 11000; | 198 | private readonly int mPort = 11000; |
203 | 199 | ||
204 | public TcpServer() | 200 | public TcpServer() |
205 | { | 201 | { |
diff --git a/ThirdParty/3Di/RegionProxy/RegionProxyPlugin.cs b/ThirdParty/3Di/RegionProxy/RegionProxyPlugin.cs index eaafe6c..2c86fd4 100644 --- a/ThirdParty/3Di/RegionProxy/RegionProxyPlugin.cs +++ b/ThirdParty/3Di/RegionProxy/RegionProxyPlugin.cs | |||
@@ -75,7 +75,7 @@ namespace OpenSim.ApplicationPlugins.RegionProxy | |||
75 | string proxyURL = openSim.ConfigSource.Configs["Network"].GetString("proxy_url", ""); | 75 | string proxyURL = openSim.ConfigSource.Configs["Network"].GetString("proxy_url", ""); |
76 | if (proxyURL.Length == 0) return; | 76 | if (proxyURL.Length == 0) return; |
77 | 77 | ||
78 | uint port = (uint) Int32.Parse(proxyURL.Split(new char[] {':'})[2]); | 78 | uint port = (uint) Int32.Parse(proxyURL.Split(new[] {':'})[2]); |
79 | command_server = new BaseHttpServer(port); | 79 | command_server = new BaseHttpServer(port); |
80 | command_server.Start(); | 80 | command_server.Start(); |
81 | command_server.AddXmlRPCHandler("AddPort", AddPort); | 81 | command_server.AddXmlRPCHandler("AddPort", AddPort); |
@@ -223,7 +223,7 @@ namespace OpenSim.ApplicationPlugins.RegionProxy | |||
223 | { | 223 | { |
224 | m_log = log; | 224 | m_log = log; |
225 | running = false; | 225 | running = false; |
226 | receivedData = new AsyncCallback(OnReceivedData); | 226 | receivedData = OnReceivedData; |
227 | } | 227 | } |
228 | 228 | ||
229 | public void BlockClientMessages(string regionUrl, int regionPort) | 229 | public void BlockClientMessages(string regionUrl, int regionPort) |
@@ -452,7 +452,7 @@ namespace OpenSim.ApplicationPlugins.RegionProxy | |||
452 | 452 | ||
453 | protected class ProxyMap | 453 | protected class ProxyMap |
454 | { | 454 | { |
455 | private Dictionary<EndPoint, RegionData> map; | 455 | private readonly Dictionary<EndPoint, RegionData> map; |
456 | 456 | ||
457 | public ProxyMap() | 457 | public ProxyMap() |
458 | { | 458 | { |
@@ -494,7 +494,7 @@ namespace OpenSim.ApplicationPlugins.RegionProxy | |||
494 | 494 | ||
495 | public class RegionData | 495 | public class RegionData |
496 | { | 496 | { |
497 | public bool isBlocked = false; | 497 | public bool isBlocked; |
498 | public List<EndPoint> regions = new List<EndPoint>(); | 498 | public List<EndPoint> regions = new List<EndPoint>(); |
499 | public Queue storedMessages = new Queue(); | 499 | public Queue storedMessages = new Queue(); |
500 | } | 500 | } |