X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_tls.lua;h=fc816ad14d1177b4b3aab59b56a8ec2ef43998f2;hb=5466de23f56d2121e384f47fe14f32b4ff5ed587;hp=ab06b9a55d7e9faf15fad4aeb2337db8895961b9;hpb=dda60a00dfba3152f2cd7241c14911f58c598ac4;p=prosody.git diff --git a/plugins/mod_tls.lua b/plugins/mod_tls.lua index ab06b9a5..fc816ad1 100644 --- a/plugins/mod_tls.lua +++ b/plugins/mod_tls.lua @@ -1,26 +1,38 @@ +-- Prosody IM v0.2 +-- Copyright (C) 2008 Matthew Wild +-- Copyright (C) 2008 Waqas Hussain +-- +-- This program is free software; you can redistribute it and/or +-- modify it under the terms of the GNU General Public License +-- as published by the Free Software Foundation; either version 2 +-- of the License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software +-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +-- + + local st = require "util.stanza"; -local send = require "core.sessionmanager".send_to_session; -local sm_bind_resource = require "core.sessionmanager".bind_resource; -local sessions = sessions; +--local sessions = sessions; -local usermanager_validate_credentials = require "core.usermanager".validate_credentials; -local t_concat, t_insert = table.concat, table.insert; -local tostring = tostring; +local t_insert = table.insert; 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, +module:add_handler("c2s_unauthed", "starttls", xmlns_starttls, function (session, stanza) if session.conn.starttls then - send(session, st.stanza("proceed", { xmlns = xmlns_starttls })); - -- FIXME: I'm commenting the below, not sure why it was necessary - -- sessions[session.conn] = nil; + session.send(st.stanza("proceed", { xmlns = xmlns_starttls })); session:reset_stream(); session.conn.starttls(); session.log("info", "TLS negotiation started..."); @@ -30,9 +42,10 @@ add_handler("c2s_unauthed", "starttls", xmlns_starttls, end end); -add_event_hook("stream-features", +local starttls_attr = { xmlns = xmlns_starttls }; +module:add_event_hook("stream-features", function (session, features) if session.conn.starttls then - t_insert(features, ""); + features:tag("starttls", starttls_attr):up(); end - end); \ No newline at end of file + end);