aboutsummaryrefslogtreecommitdiffstats
path: root/util/sasl_cyrus.lua
diff options
context:
space:
mode:
authorWaqas Hussain <waqas20@gmail.com>2010-11-02 18:58:11 +0500
committerWaqas Hussain <waqas20@gmail.com>2010-11-02 18:58:11 +0500
commit372813b78e29479f655712c651a1a57828423987 (patch)
tree2157a22cb34eb2afa3f922358cfb65cb3a0bd51b /util/sasl_cyrus.lua
parent310785e05e00e43bf71fdcfc585dc1c1232c2ced (diff)
downloadprosody-372813b78e29479f655712c651a1a57828423987.tar.gz
prosody-372813b78e29479f655712c651a1a57828423987.zip
util.sasl, util.sasl_cyrus: Mechanism selection cleaned up to be more consistent.
Diffstat (limited to 'util/sasl_cyrus.lua')
-rw-r--r--util/sasl_cyrus.lua8
1 files changed, 5 insertions, 3 deletions
diff --git a/util/sasl_cyrus.lua b/util/sasl_cyrus.lua
index 1f901d57..002118fd 100644
--- a/util/sasl_cyrus.lua
+++ b/util/sasl_cyrus.lua
@@ -121,8 +121,10 @@ end
-- select a mechanism to use
function method:select(mechanism)
- self.mechanism = mechanism;
- return self:mechanisms()[mechanism];
+ if not self.selected and self.mechs[mechanism] then
+ self.selected = mechanism;
+ return true;
+ end
end
-- feed new messages to process into the library
@@ -131,7 +133,7 @@ function method:process(message)
local data;
if not self.first_step_done then
- err, data = cyrussasl.server_start(self.cyrus, self.mechanism, message or "")
+ err, data = cyrussasl.server_start(self.cyrus, self.selected, message or "")
self.first_step_done = true;
else
err, data = cyrussasl.server_step(self.cyrus, message or "")