From faa99714fccb2ef674038c90dff1114d06c99adf Mon Sep 17 00:00:00 2001
From: Waqas Hussain <waqas20@gmail.com>
Date: Tue, 3 Aug 2010 18:20:29 +0500
Subject: util.sasl_cyrus: Make multi-step SASL mechanisms work correctly.

---
 util/sasl_cyrus.lua | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/util/sasl_cyrus.lua b/util/sasl_cyrus.lua
index ef1bf3d0..2e5b96c0 100644
--- a/util/sasl_cyrus.lua
+++ b/util/sasl_cyrus.lua
@@ -133,8 +133,9 @@ function method:process(message)
 	local err;
 	local data;
 
-	if self.mechanism then
+	if not self.first_step_done then
 		err, data = cyrussasl.server_start(self.cyrus, self.mechanism, message or "")
+		self.first_step_done = true;
 	else
 		err, data = cyrussasl.server_step(self.cyrus, message or "")
 	end
-- 
cgit v1.2.3