diff options
author | Matthew Wild <mwild1@gmail.com> | 2008-10-07 23:13:30 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2008-10-07 23:13:30 +0100 |
commit | 014df9a22a4b0519034423f198bdb5bcac5b6f21 (patch) | |
tree | 1f292cfa4af4af4a2b7f20b4ffe85217218fbee1 /plugins/mod_tls.lua | |
parent | 63de1444c34fe6f496046909d2a85d114a148c75 (diff) | |
download | prosody-014df9a22a4b0519034423f198bdb5bcac5b6f21.tar.gz prosody-014df9a22a4b0519034423f198bdb5bcac5b6f21.zip |
forgot to commit mod_tls, oops :)
Diffstat (limited to 'plugins/mod_tls.lua')
-rw-r--r-- | plugins/mod_tls.lua | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/plugins/mod_tls.lua b/plugins/mod_tls.lua new file mode 100644 index 00000000..22df4b28 --- /dev/null +++ b/plugins/mod_tls.lua @@ -0,0 +1,37 @@ + +local st = require "util.stanza"; +local send = require "core.sessionmanager".send_to_session; +local sm_bind_resource = require "core.sessionmanager".bind_resource; + +local usermanager_validate_credentials = require "core.usermanager".validate_credentials; +local t_concat, t_insert = table.concat, table.insert; +local tostring = tostring; + +local log = require "util.logger".init("mod_starttls"); + +local xmlns_starttls ='urn:ietf:params:xml:ns:xmpp-tls'; + +local new_connhandler = require "net.connhandlers".new; + +add_handler("c2s_unauthed", "starttls", xmlns_starttls, + function (session, stanza) + if session.conn.starttls then + print("Wants to do TLS..."); + send(session, st.stanza("proceed", { xmlns = xmlns_starttls })); + session.connhandler = new_connhandler("xmpp-client", session); + session.notopen = true; + if session.conn.starttls() then + print("Done"); + else + print("Failed"); + end + + end + end); + +add_event_hook("stream-features", + function (session, features) + if session.conn.starttls then + t_insert(features, "<starttls xmlns='"..xmlns_starttls.."'/>"); + end + end);
\ No newline at end of file |