aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs')
-rw-r--r--OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs55
1 files changed, 50 insertions, 5 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index f4e1db4..3bc557d 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -123,6 +123,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
123 availableMethods["admin_region_query"] = XmlRpcRegionQueryMethod; 123 availableMethods["admin_region_query"] = XmlRpcRegionQueryMethod;
124 availableMethods["admin_shutdown"] = XmlRpcShutdownMethod; 124 availableMethods["admin_shutdown"] = XmlRpcShutdownMethod;
125 availableMethods["admin_broadcast"] = XmlRpcAlertMethod; 125 availableMethods["admin_broadcast"] = XmlRpcAlertMethod;
126 availableMethods["admin_dialog"] = XmlRpcDialogMethod;
126 availableMethods["admin_restart"] = XmlRpcRestartMethod; 127 availableMethods["admin_restart"] = XmlRpcRestartMethod;
127 availableMethods["admin_load_heightmap"] = XmlRpcLoadHeightmapMethod; 128 availableMethods["admin_load_heightmap"] = XmlRpcLoadHeightmapMethod;
128 // User management 129 // User management
@@ -277,6 +278,53 @@ namespace OpenSim.ApplicationPlugins.RemoteController
277 m_log.Info("[RADMIN]: Alert request complete"); 278 m_log.Info("[RADMIN]: Alert request complete");
278 return response; 279 return response;
279 } 280 }
281 public XmlRpcResponse XmlRpcDialogMethod(XmlRpcRequest request, IPEndPoint remoteClient)
282 {
283 XmlRpcResponse response = new XmlRpcResponse();
284 Hashtable responseData = new Hashtable();
285
286 m_log.Info("[RADMIN]: Dialog request started");
287
288 try
289 {
290 Hashtable requestData = (Hashtable)request.Params[0];
291
292 checkStringParameters(request, new string[] { "password", "from", "message" });
293
294 if (m_requiredPassword != String.Empty &&
295 (!requestData.Contains("password") || (string)requestData["password"] != m_requiredPassword))
296 throw new Exception("wrong password");
297
298 string message = (string)requestData["message"];
299 string fromuuid = (string)requestData["from"];
300 m_log.InfoFormat("[RADMIN]: Broadcasting: {0}", message);
301
302 responseData["accepted"] = true;
303 responseData["success"] = true;
304 response.Value = responseData;
305
306 m_app.SceneManager.ForEachScene(
307 delegate(Scene scene)
308 {
309 IDialogModule dialogModule = scene.RequestModuleInterface<IDialogModule>();
310 if (dialogModule != null)
311 dialogModule.SendNotificationToUsersInRegion(UUID.Zero, fromuuid, message);
312 });
313 }
314 catch (Exception e)
315 {
316 m_log.ErrorFormat("[RADMIN]: Broadcasting: failed: {0}", e.Message);
317 m_log.DebugFormat("[RADMIN]: Broadcasting: failed: {0}", e.ToString());
318
319 responseData["accepted"] = false;
320 responseData["success"] = false;
321 responseData["error"] = e.Message;
322 response.Value = responseData;
323 }
324
325 m_log.Info("[RADMIN]: Alert request complete");
326 return response;
327 }
280 328
281 public XmlRpcResponse XmlRpcLoadHeightmapMethod(XmlRpcRequest request, IPEndPoint remoteClient) 329 public XmlRpcResponse XmlRpcLoadHeightmapMethod(XmlRpcRequest request, IPEndPoint remoteClient)
282 { 330 {
@@ -360,7 +408,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController
360 && ((string) requestData["shutdown"] == "delayed") 408 && ((string) requestData["shutdown"] == "delayed")
361 && requestData.ContainsKey("milliseconds")) 409 && requestData.ContainsKey("milliseconds"))
362 { 410 {
363 timeout = (Int32) requestData["milliseconds"]; 411 timeout = Int32.Parse(requestData["milliseconds"].ToString());
364 412
365 message 413 message
366 = "Region is going down in " + ((int) (timeout/1000)).ToString() 414 = "Region is going down in " + ((int) (timeout/1000)).ToString()
@@ -1562,11 +1610,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController
1562 assets = doc.GetElementsByTagName("RequiredAsset"); 1610 assets = doc.GetElementsByTagName("RequiredAsset");
1563 foreach (XmlNode asset in assets) 1611 foreach (XmlNode asset in assets)
1564 { 1612 {
1565 AssetBase rass = new AssetBase(); 1613 AssetBase rass = new AssetBase(UUID.Random(), GetStringAttribute(asset,"name",""), SByte.Parse(GetStringAttribute(asset,"type","")));
1566 rass.FullID = UUID.Random();
1567 rass.Name = GetStringAttribute(asset,"name","");
1568 rass.Description = GetStringAttribute(asset,"desc",""); 1614 rass.Description = GetStringAttribute(asset,"desc","");
1569 rass.Type = SByte.Parse(GetStringAttribute(asset,"type",""));
1570 rass.Local = Boolean.Parse(GetStringAttribute(asset,"local","")); 1615 rass.Local = Boolean.Parse(GetStringAttribute(asset,"local",""));
1571 rass.Temporary = Boolean.Parse(GetStringAttribute(asset,"temporary","")); 1616 rass.Temporary = Boolean.Parse(GetStringAttribute(asset,"temporary",""));
1572 rass.Data = Convert.FromBase64String(asset.InnerText); 1617 rass.Data = Convert.FromBase64String(asset.InnerText);