aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/ApplicationPlugins/RemoteController
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/ApplicationPlugins/RemoteController')
-rw-r--r--OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index f4c0b90..a6d5089 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -70,6 +70,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
70 m_httpd.AddXmlRPCHandler("admin_restart", XmlRpcRestartMethod); 70 m_httpd.AddXmlRPCHandler("admin_restart", XmlRpcRestartMethod);
71 m_httpd.AddXmlRPCHandler("admin_load_heightmap", XmlRpcLoadHeightmapMethod); 71 m_httpd.AddXmlRPCHandler("admin_load_heightmap", XmlRpcLoadHeightmapMethod);
72 m_httpd.AddXmlRPCHandler("admin_create_user", XmlRpcCreateUserMethod); 72 m_httpd.AddXmlRPCHandler("admin_create_user", XmlRpcCreateUserMethod);
73 m_httpd.AddXmlRPCHandler("admin_load_xml", XmlRpcLoadXMLMethod);
73 } 74 }
74 } 75 }
75 catch (NullReferenceException) 76 catch (NullReferenceException)
@@ -336,6 +337,53 @@ namespace OpenSim.ApplicationPlugins.LoadRegions
336 return response; 337 return response;
337 } 338 }
338 339
340 public XmlRpcResponse XmlRpcLoadXMLMethod(XmlRpcRequest request)
341 {
342 m_log.Info("[RADMIN]: Received Load XML Administrator Request");
343 XmlRpcResponse response = new XmlRpcResponse();
344 Hashtable requestData = (Hashtable) request.Params[0];
345 Hashtable responseData = new Hashtable();
346 if (requiredPassword != System.String.Empty &&
347 (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword))
348 {
349 responseData["loaded"] = "false";
350 responseData["switched"] = "false";
351 response.Value = responseData;
352 }
353 else
354 {
355 try
356 {
357 string region_name = (string) requestData["region_name"];
358 string filename = (string) requestData["filename"];
359
360 if (m_app.SceneManager.TrySetCurrentScene(region_name))
361 {
362 m_log.Info("[RADMIN] Switched to region "+region_name);
363 responseData["switched"] = "true";
364 m_app.SceneManager.LoadCurrentSceneFromXml(filename, true, new LLVector3(0, 0, 0));
365 responseData["loaded"] = "true";
366 response.Value = responseData;
367 }
368 else
369 {
370 m_log.Info("[RADMIN] Failed to switch to region "+region_name);
371 responseData["loaded"] = "false";
372 responseData["switched"] = "false";
373 response.Value = responseData;
374 }
375 }
376 catch (Exception e)
377 {
378 responseData["loaded"] = "false";
379 responseData["error"] = e.ToString();
380 response.Value = responseData;
381 }
382 }
383
384 return response;
385 }
386
339 public void Close() 387 public void Close()
340 { 388 {
341 } 389 }