Mercurial > prosody-modules
diff mod_manifesto/mod_manifesto.lua @ 1308:9ddfff2acddc
mod_manifest: Close unencrypted connections when entering manifesto mode
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Mon, 17 Feb 2014 21:07:01 +0100 |
parents | 71dd991c94e7 |
children | 853a382c9bd6 |
line wrap: on
line diff
--- a/mod_manifesto/mod_manifesto.lua Mon Feb 17 20:39:48 2014 +0100 +++ b/mod_manifesto/mod_manifesto.lua Mon Feb 17 21:07:01 2014 +0100 @@ -7,6 +7,7 @@ local dataforms_new = require "util.dataforms".new; local adhoc_initial = require "util.adhoc".new_initial_data_form; local mm_reload = require "modulemanager".reload; +local s2s_destroy_session = require "core.s2smanager".destroy_session; local config = require "core.configmanager"; local config_get = config.get; local config_set = config.set; @@ -18,6 +19,7 @@ local host = module.host; local host_session = hosts[host]; local incoming_s2s = prosody.incoming_s2s; +local s2s_sessions = module:shared"/*/s2s/sessions"; local default_tpl = [[ Hello there. @@ -155,6 +157,13 @@ if fields.state == "enabled" then config_set(host, "c2s_require_encryption", true); config_set(host, "s2s_require_encryption", true); + + for _, session in pairs(s2s_sessions) do + if not session.secure then + (session.close or s2s_destroy_session)(session); + end + end + info = "Manifesto mode enabled"; else local ok, err = prosody.reload_config();