aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_tls.lua
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2008-10-07 23:13:30 +0100
committerMatthew Wild <mwild1@gmail.com>2008-10-07 23:13:30 +0100
commit014df9a22a4b0519034423f198bdb5bcac5b6f21 (patch)
tree1f292cfa4af4af4a2b7f20b4ffe85217218fbee1 /plugins/mod_tls.lua
parent63de1444c34fe6f496046909d2a85d114a148c75 (diff)
downloadprosody-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.lua37
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