diff options
author | Sean Dague | 2008-02-11 12:58:01 +0000 |
---|---|---|
committer | Sean Dague | 2008-02-11 12:58:01 +0000 |
commit | c7c567182aee77c3bf3024114c3eb87cc77365f4 (patch) | |
tree | 6ac6e04dadeb5833baabc6ed388594564e680630 | |
parent | From: dirk husemann <hud@zurich.ibm.com> (diff) | |
download | opensim-SC_OLD-c7c567182aee77c3bf3024114c3eb87cc77365f4.zip opensim-SC_OLD-c7c567182aee77c3bf3024114c3eb87cc77365f4.tar.gz opensim-SC_OLD-c7c567182aee77c3bf3024114c3eb87cc77365f4.tar.bz2 opensim-SC_OLD-c7c567182aee77c3bf3024114c3eb87cc77365f4.tar.xz |
From: Ansgar Schmidt <ANSI@de.ibm.com>
Here is a patch for Revision 3380. This patch adds the feature of loading
XML prim specification via XML-RPC call on a given island. Call with
Islandname and XMLPrim Filename.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | 48 |
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 | } |