Software /
code /
prosody
Comparison
plugins/mod_saslauth.lua @ 563:099d8a102deb
Add TLS socket to readlist before handshake starts, fixes major slow-down on TLS connections
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 05 Dec 2008 19:24:01 +0000 |
parent | 529:631e7d16d22b |
child | 565:3a49d85cafbc |
comparison
equal
deleted
inserted
replaced
562:04ee161d936b | 563:099d8a102deb |
---|---|
21 | 21 |
22 local st = require "util.stanza"; | 22 local st = require "util.stanza"; |
23 local sm_bind_resource = require "core.sessionmanager".bind_resource; | 23 local sm_bind_resource = require "core.sessionmanager".bind_resource; |
24 local jid | 24 local jid |
25 local base64 = require "util.encodings".base64; | 25 local base64 = require "util.encodings".base64; |
26 | |
27 local gettime = require "socket".gettime; | |
26 | 28 |
27 local usermanager_validate_credentials = require "core.usermanager".validate_credentials; | 29 local usermanager_validate_credentials = require "core.usermanager".validate_credentials; |
28 local t_concat, t_insert = table.concat, table.insert; | 30 local t_concat, t_insert = table.concat, table.insert; |
29 local tostring = tostring; | 31 local tostring = tostring; |
30 local jid_split = require "util.jid".split | 32 local jid_split = require "util.jid".split |
62 session.sasl_handler = nil; | 64 session.sasl_handler = nil; |
63 session:reset_stream(); | 65 session:reset_stream(); |
64 end | 66 end |
65 end | 67 end |
66 | 68 |
67 local function password_callback(node, host, mechanism, raw_host) | 69 local function password_callback(node, host, mechanism) |
68 local password = (datamanager.load(node, host, "accounts") or {}).password; -- FIXME handle hashed passwords | 70 local password = (datamanager.load(node, host, "accounts") or {}).password; -- FIXME handle hashed passwords |
69 local func = function(x) return x; end; | 71 local func = function(x) return x; end; |
70 if password then | 72 if password then |
71 if mechanism == "PLAIN" then | 73 if mechanism == "PLAIN" then |
72 return func, password; | 74 return func, password; |
73 elseif mechanism == "DIGEST-MD5" then | 75 elseif mechanism == "DIGEST-MD5" then |
74 return func, md5(node..":"..raw_host..":"..password); | 76 return func, md5(node..":"..host..":"..password); |
75 end | 77 end |
76 end | 78 end |
77 return func, nil; | 79 return func, nil; |
78 end | 80 end |
79 | 81 |
140 else | 142 else |
141 session.send(st.reply(stanza) | 143 session.send(st.reply(stanza) |
142 :tag("bind", { xmlns = xmlns_bind}) | 144 :tag("bind", { xmlns = xmlns_bind}) |
143 :tag("jid"):text(session.full_jid)); | 145 :tag("jid"):text(session.full_jid)); |
144 end | 146 end |
147 | |
148 session.log("******", "Connection took "..tostring(session.conntimetotal).." seconds"); | |
145 end); | 149 end); |
146 | 150 |
147 module:add_iq_handler("c2s", "urn:ietf:params:xml:ns:xmpp-session", | 151 module:add_iq_handler("c2s", "urn:ietf:params:xml:ns:xmpp-session", |
148 function (session, stanza) | 152 function (session, stanza) |
149 log("debug", "Client tried to bind to a resource"); | 153 log("debug", "Client tried to bind to a resource"); |