diff options
author | Matthew Wild <mwild1@gmail.com> | 2009-10-17 15:26:32 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2009-10-17 15:26:32 +0100 |
commit | 94f04512127f34d226649124eabf5dbfe4c28d7f (patch) | |
tree | 839b880971e9b3bfb659a8bdde535b4aabe5fa62 /plugins/mod_console.lua | |
parent | 5a0637e9e0e3385d7348645dd5a13b5e0cb383c5 (diff) | |
download | prosody-94f04512127f34d226649124eabf5dbfe4c28d7f.tar.gz prosody-94f04512127f34d226649124eabf5dbfe4c28d7f.zip |
mod_console: Add commands host:activate(host, config) and host:deactivate(host, reason) to add/remove hosts at runtime
Diffstat (limited to 'plugins/mod_console.lua')
-rw-r--r-- | plugins/mod_console.lua | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/mod_console.lua b/plugins/mod_console.lua index 5472eb91..552819c1 100644 --- a/plugins/mod_console.lua +++ b/plugins/mod_console.lua @@ -572,6 +572,34 @@ function def_env.s2s:close(from, to) return true, "Closed "..count.." s2s session"..((count == 1 and "") or "s"); end +def_env.host = {}; def_env.hosts = def_env.host; +function def_env.host:activate(hostname, config) + local hostmanager_activate = require "core.hostmanager".activate; + if hosts[hostname] then + return false, "The host "..tostring(hostname).." is already activated"; + end + + local defined_hosts = config or configmanager.getconfig(); + if not config and not defined_hosts[hostname] then + return false, "Couldn't find "..tostring(hostname).." defined in the config, perhaps you need to config:reload()?"; + end + hostmanager_activate(hostname, config or defined_hosts[hostname]); + return true, "Host "..tostring(hostname).." activated"; +end + +function def_env.host:deactivate(hostname, reason) + local hostmanager_deactivate = require "core.hostmanager".deactivate; + local host = hosts[hostname]; + if not host then + return false, "The host "..tostring(hostname).." is not activated"; + end + if reason then + reason = { condition = "host-gone", text = reason }; + end + hostmanager_deactivate(hostname, reason); + return true, "Host "..tostring(hostname).." deactivated"; +end + ------------- function printbanner(session) |