Diff

util/sasl.lua @ 2179:c985536d5452 sasl

Making mod_saslauth use the new SASL API.
author Tobias Markmann <tm@ayena.de>
date Fri, 28 Aug 2009 13:04:38 +0200
parent 2178:28d841403a21
child 2180:8de2f7f5b870
line wrap: on
line diff
--- a/util/sasl.lua	Thu Aug 27 21:29:36 2009 +0200
+++ b/util/sasl.lua	Fri Aug 28 13:04:38 2009 +0200
@@ -81,6 +81,7 @@
 -- create a new SASL object which can be used to authenticate clients
 function new(realm, profile)
 	sasl_i = {profile = profile};
+	sasl_i.realm = realm;
 	return setmetatable(sasl_i, method);
 end
 
@@ -92,7 +93,7 @@
 		if backend_mechanism[backend] then
 			for _, mechanism in ipairs(backend_mechanism[backend]) do
 				mechanisms[mechanism] = true;
-				end
+			end
 		end
 	end
 	self["possible_mechanisms"] = mechanisms;
@@ -102,7 +103,9 @@
 -- select a mechanism to use
 function method:select(mechanism)
 	self.mech_i = mechanisms[mechanism]
-	if self.mech_i == nil then return false; end
+	if self.mech_i == nil then 
+		return false;
+	end
 	return true;
 end
 
@@ -120,13 +123,16 @@
 	local authentication = s_match(response, "%z([^&%z]+)%z")
 	local password = s_match(response, "%z[^&%z]+%z([^&%z]+)")
 
-	if authentication == nil or password == nil then return "failure", "malformed-request" end
+	if authentication == nil or password == nil then
+		return "failure", "malformed-request";
+	end
 
-	local correct, state = false, false, false;
+	local correct, state = false, false;
 	if self.profile.plain then
-		local correct_password, state = self.profile.plain(authentication, self.realm);
+		local correct_password;
+		correct_password, state = self.profile.plain(authentication, self.realm);
 		if correct_password == password then correct = true; else correct = false; end
-	else if self.profile.plain_test then
+	elseif self.profile.plain_test then
 		correct, state = self.profile.plain_test(authentication, self.realm, password);
 	end