Merge with main branch.

Sun, 05 Jul 2009 19:05:25 +0200

author
Tobias Markmann <tm@ayena.de>
date
Sun, 05 Jul 2009 19:05:25 +0200
changeset 1487
66f18c18befa
parent 1486
3e04efa8af7e (diff)
parent 1483
efd19cdda6ca (current diff)
child 1489
4da0131a5ccb

Merge with main branch.

--- a/plugins/mod_saslauth.lua	Sun Jul 05 17:36:27 2009 +0100
+++ b/plugins/mod_saslauth.lua	Sun Jul 05 19:05:25 2009 +0200
@@ -12,7 +12,6 @@
 local sm_bind_resource = require "core.sessionmanager".bind_resource;
 local sm_make_authenticated = require "core.sessionmanager".make_authenticated;
 local base64 = require "util.encodings".base64;
-local to_unicode = require "util.encodings".idna.to_unicode;
 
 local datamanager_load = require "util.datamanager".load;
 local usermanager_validate_credentials = require "core.usermanager".validate_credentials;
@@ -66,13 +65,13 @@
 end
 
 local function password_callback(node, hostname, realm, mechanism, decoder)
-	local password = (datamanager_load(node, to_unicode(hostname), "accounts") or {}).password; -- FIXME handle hashed passwords
+	local password = (datamanager_load(node, hostname, "accounts") or {}).password; -- FIXME handle hashed passwords
 	local func = function(x) return x; end;
 	if password then
 		if mechanism == "PLAIN" then
 			return func, password;
 		elseif mechanism == "DIGEST-MD5" then
-			if decoder then node, hostname, password = decoder(node), decoder(hostname), decoder(password); end
+			if decoder then node, realm, password = decoder(node), decoder(realm), decoder(password); end
 			return func, md5(node..":"..realm..":"..password);
 		end
 	end
--- a/util/sasl.lua	Sun Jul 05 17:36:27 2009 +0100
+++ b/util/sasl.lua	Sun Jul 05 19:05:25 2009 +0200
@@ -19,6 +19,7 @@
 local generate_uuid = require "util.uuid".generate;
 local t_insert, t_concat = table.insert, table.concat;
 local to_byte, to_char = string.byte, string.char;
+local to_unicode = require "util.encodings".idna.to_unicode;
 local s_match = string.match;
 local gmatch = string.gmatch
 local string = string
@@ -199,7 +200,7 @@
 			
 			--TODO maybe realm support
 			self.username = response["username"];
-			local password_encoding, Y = self.password_handler(response["username"], domain, response["realm"], "DIGEST-MD5", decoder);
+			local password_encoding, Y = self.password_handler(response["username"], to_unicode(domain), response["realm"], "DIGEST-MD5", decoder);
 			if Y == nil then return "failure", "not-authorized"
 			elseif Y == false then return "failure", "account-disabled" end
 			local A1 = "";

mercurial