Diff

plugins/mod_saslauth.lua @ 595:08ed4fa2f89d

Latin1 support for SASL DIGEST-MD5 (initial commit)
author Waqas Hussain <waqas20@gmail.com>
date Sun, 07 Dec 2008 23:43:08 +0500
parent 565:3a49d85cafbc
child 599:30655c5cc531
line wrap: on
line diff
--- a/plugins/mod_saslauth.lua	Sat Dec 06 23:23:08 2008 +0000
+++ b/plugins/mod_saslauth.lua	Sun Dec 07 23:43:08 2008 +0500
@@ -41,11 +41,13 @@
 local function build_reply(status, ret, err_msg)
 	local reply = st.stanza(status, {xmlns = xmlns_sasl});
 	if status == "challenge" then
+		log("challenge", ret or "");
 		reply:text(base64.encode(ret or ""));
 	elseif status == "failure" then
 		reply:tag(ret):up();
 		if err_msg then reply:tag("text"):text(err_msg); end
 	elseif status == "success" then
+		log("success", ret or "");
 		reply:text(base64.encode(ret or ""));
 	else
 		error("Unknown sasl status: "..status);
@@ -65,13 +67,15 @@
 end
 
 local function password_callback(node, host, mechanism, raw_host)
-	local password = (datamanager.load(node, host, "accounts") or {}).password; -- FIXME handle hashed passwords
+	log("host", host);
+	log("raw_host", raw_host);
+	local password = (datamanager.load(node, raw_host, "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
-			return func, md5(node..":"..raw_host..":"..password);
+			return func, md5(node..":"..host..":"..password);
 		end
 	end
 	return func, nil;
@@ -87,6 +91,7 @@
 	local text = stanza[1];
 	if text then
 		text = base64.decode(text);
+		log("recieved", text);
 		if not text then
 			session.sasl_handler = nil;
 			session.send(build_reply("failure", "incorrect-encoding"));