X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util%2Fsasl_cyrus.lua;h=002118fdc07c86f14b8f0c0686e8c70537e73db0;hb=a689938fa45323f67433bcd5554affd3f4b0fc52;hp=1f901d5704df6042d3aea646107263e977e69cb9;hpb=02f295380eb43892fdf6dd6a7e893879611fe348;p=prosody.git 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 "")