Mercurial > prosody-hg
comparison plugins/mod_saslauth.lua @ 1072:c7967004b5d0
mod_saslauth: Various logging fixes
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Thu, 30 Apr 2009 01:39:39 +0100 |
| parents | 216f9a9001f1 |
| children | 7c20373d4451 |
comparison
equal
deleted
inserted
replaced
| 1071:216f9a9001f1 | 1072:c7967004b5d0 |
|---|---|
| 30 local new_sasl = require "util.sasl".new; | 30 local new_sasl = require "util.sasl".new; |
| 31 | 31 |
| 32 local function build_reply(status, ret, err_msg) | 32 local function build_reply(status, ret, err_msg) |
| 33 local reply = st.stanza(status, {xmlns = xmlns_sasl}); | 33 local reply = st.stanza(status, {xmlns = xmlns_sasl}); |
| 34 if status == "challenge" then | 34 if status == "challenge" then |
| 35 log("debug", ret or ""); | 35 log("debug", "%s", ret or ""); |
| 36 reply:text(base64.encode(ret or "")); | 36 reply:text(base64.encode(ret or "")); |
| 37 elseif status == "failure" then | 37 elseif status == "failure" then |
| 38 reply:tag(ret):up(); | 38 reply:tag(ret):up(); |
| 39 if err_msg then reply:tag("text"):text(err_msg); end | 39 if err_msg then reply:tag("text"):text(err_msg); end |
| 40 elseif status == "success" then | 40 elseif status == "success" then |
| 41 log("debug", ret or ""); | 41 log("debug", "%s", ret or ""); |
| 42 reply:text(base64.encode(ret or "")); | 42 reply:text(base64.encode(ret or "")); |
| 43 else | 43 else |
| 44 error("Unknown sasl status: "..status); | 44 error("Unknown sasl status: "..status); |
| 45 end | 45 end |
| 46 return reply; | 46 return reply; |
| 87 return; -- FIXME ignoring out of order stanzas because ejabberd does | 87 return; -- FIXME ignoring out of order stanzas because ejabberd does |
| 88 end | 88 end |
| 89 local text = stanza[1]; | 89 local text = stanza[1]; |
| 90 if text then | 90 if text then |
| 91 text = base64.decode(text); | 91 text = base64.decode(text); |
| 92 log("debug", text); | 92 log("debug", "%s", text); |
| 93 if not text then | 93 if not text then |
| 94 session.sasl_handler = nil; | 94 session.sasl_handler = nil; |
| 95 session.send(build_reply("failure", "incorrect-encoding")); | 95 session.send(build_reply("failure", "incorrect-encoding")); |
| 96 return; | 96 return; |
| 97 end | 97 end |
| 98 end | 98 end |
| 99 local status, ret, err_msg = session.sasl_handler:feed(text); | 99 local status, ret, err_msg = session.sasl_handler:feed(text); |
| 100 handle_status(session, status); | 100 handle_status(session, status); |
| 101 local s = build_reply(status, ret, err_msg); | 101 local s = build_reply(status, ret, err_msg); |
| 102 log("debug", "sasl reply: "..tostring(s)); | 102 log("debug", "sasl reply: %s", tostring(s)); |
| 103 session.send(s); | 103 session.send(s); |
| 104 end | 104 end |
| 105 | 105 |
| 106 module:add_handler("c2s_unauthed", "auth", xmlns_sasl, sasl_handler); | 106 module:add_handler("c2s_unauthed", "auth", xmlns_sasl, sasl_handler); |
| 107 module:add_handler("c2s_unauthed", "abort", xmlns_sasl, sasl_handler); | 107 module:add_handler("c2s_unauthed", "abort", xmlns_sasl, sasl_handler); |
| 128 end | 128 end |
| 129 end); | 129 end); |
| 130 | 130 |
| 131 module:add_iq_handler("c2s", "urn:ietf:params:xml:ns:xmpp-bind", | 131 module:add_iq_handler("c2s", "urn:ietf:params:xml:ns:xmpp-bind", |
| 132 function (session, stanza) | 132 function (session, stanza) |
| 133 log("debug", "Client tried to bind to a resource"); | 133 log("debug", "Client requesting a resource bind"); |
| 134 local resource; | 134 local resource; |
| 135 if stanza.attr.type == "set" then | 135 if stanza.attr.type == "set" then |
| 136 local bind = stanza.tags[1]; | 136 local bind = stanza.tags[1]; |
| 137 if bind and bind.attr.xmlns == xmlns_bind then | 137 if bind and bind.attr.xmlns == xmlns_bind then |
| 138 resource = bind:child_with_name("resource"); | 138 resource = bind:child_with_name("resource"); |
| 151 end | 151 end |
| 152 end); | 152 end); |
| 153 | 153 |
| 154 module:add_iq_handler("c2s", "urn:ietf:params:xml:ns:xmpp-session", | 154 module:add_iq_handler("c2s", "urn:ietf:params:xml:ns:xmpp-session", |
| 155 function (session, stanza) | 155 function (session, stanza) |
| 156 log("debug", "Client tried to bind to a resource"); | 156 log("debug", "Client requesting a session"); |
| 157 session.send(st.reply(stanza)); | 157 session.send(st.reply(stanza)); |
| 158 end); | 158 end); |
