Mercurial > prosody-hg
comparison plugins/mod_saslauth.lua @ 2877:1edeb8fe7d14
Merge 0.6.2/waqas with 0.6.2/MattJ
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 03 Mar 2010 22:05:05 +0000 |
| parents | e165414a454c ad534f89c758 |
| children | b7049746bd29 |
comparison
equal
deleted
inserted
replaced
| 2813:46dfcc33ea9e | 2877:1edeb8fe7d14 |
|---|---|
| 36 local new_sasl = require "util.sasl".new; | 36 local new_sasl = require "util.sasl".new; |
| 37 | 37 |
| 38 local function build_reply(status, ret, err_msg) | 38 local function build_reply(status, ret, err_msg) |
| 39 local reply = st.stanza(status, {xmlns = xmlns_sasl}); | 39 local reply = st.stanza(status, {xmlns = xmlns_sasl}); |
| 40 if status == "challenge" then | 40 if status == "challenge" then |
| 41 log("debug", "%s", ret or ""); | 41 --log("debug", "CHALLENGE: %s", ret or ""); |
| 42 reply:text(base64.encode(ret or "")); | 42 reply:text(base64.encode(ret or "")); |
| 43 elseif status == "failure" then | 43 elseif status == "failure" then |
| 44 reply:tag(ret):up(); | 44 reply:tag(ret):up(); |
| 45 if err_msg then reply:tag("text"):text(err_msg); end | 45 if err_msg then reply:tag("text"):text(err_msg); end |
| 46 elseif status == "success" then | 46 elseif status == "success" then |
| 47 log("debug", "%s", ret or ""); | 47 --log("debug", "SUCCESS: %s", ret or ""); |
| 48 reply:text(base64.encode(ret or "")); | 48 reply:text(base64.encode(ret or "")); |
| 49 else | 49 else |
| 50 module:log("error", "Unknown sasl status: %s", status); | 50 module:log("error", "Unknown sasl status: %s", status); |
| 51 end | 51 end |
| 52 return reply; | 52 return reply; |
| 122 return; -- FIXME ignoring out of order stanzas because ejabberd does | 122 return; -- FIXME ignoring out of order stanzas because ejabberd does |
| 123 end | 123 end |
| 124 local text = stanza[1]; | 124 local text = stanza[1]; |
| 125 if text then | 125 if text then |
| 126 text = base64.decode(text); | 126 text = base64.decode(text); |
| 127 log("debug", "%s", text); | 127 --log("debug", "AUTH: %s", text:gsub("[%z\001-\008\011\012\014-\031]", " ")); |
| 128 if not text then | 128 if not text then |
| 129 session.sasl_handler = nil; | 129 session.sasl_handler = nil; |
| 130 session.send(build_reply("failure", "incorrect-encoding")); | 130 session.send(build_reply("failure", "incorrect-encoding")); |
| 131 return; | 131 return; |
| 132 end | 132 end |
