util/sasl_cyrus.lua

changeset 3549
395d5bb5266e
parent 3468
d50e2c937717
child 3550
5e5d136d9de0
--- a/util/sasl_cyrus.lua	Tue Nov 02 15:07:25 2010 +0500
+++ b/util/sasl_cyrus.lua	Tue Nov 02 18:04:56 2010 +0500
@@ -100,6 +100,12 @@
 	end
 
 	cyrussasl.setssf(sasl_i.cyrus, 0, 0xffffffff)
+	local mechanisms = {};
+	local cyrus_mechs = cyrussasl.listmech(sasl_i.cyrus, nil, "", " ", "");
+	for w in s_gmatch(cyrus_mechs, "[^ ]+") do
+		mechanisms[w] = true;
+	end
+	sasl_i.mechs = mechanisms;
 	return setmetatable(sasl_i, method);
 end
 
@@ -110,16 +116,7 @@
 
 -- get a list of possible SASL mechanims to use
 function method:mechanisms()
-	local mechanisms = self.mechs;
-	if not mechanisms then
-		mechanisms = {}
-		local cyrus_mechs = cyrussasl.listmech(self.cyrus, nil, "", " ", "")
-		for w in s_gmatch(cyrus_mechs, "[^ ]+") do
-			mechanisms[w] = true;
-		end
-		self.mechs = mechanisms
-	end
-	return mechanisms;
+	return self.mechs;
 end
 
 -- select a mechanism to use

mercurial