Changeset

1489:4da0131a5ccb

Merged with trunk
author Waqas Hussain <waqas20@gmail.com>
date Mon, 06 Jul 2009 01:40:43 +0500
parents 1488:0d1aff918303 (current diff) 1487:66f18c18befa (diff)
children 1490:b5c59667a04c
files
diffstat 4 files changed, 24 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/mod_console.lua	Mon Jul 06 01:37:57 2009 +0500
+++ b/plugins/mod_console.lua	Mon Jul 06 01:40:43 2009 +0500
@@ -437,6 +437,8 @@
 -------------
 
 function printbanner(session)
+	local option = config.get("*", "core", "console_banner");
+if option == nil or option == "full" or option == "graphic" then
 session.print [[
                    ____                \   /     _       
                     |  _ \ _ __ ___  ___  _-_   __| |_   _ 
@@ -446,7 +448,18 @@
                     A study in simplicity            |___/ 
 
 ]]
+end
+if option == nil or option == "short" or option == "full" then
 session.print("Welcome to the Prosody administration console. For a list of commands, type: help");
 session.print("You may find more help on using this console in our online documentation at ");
 session.print("http://prosody.im/doc/console\n");
 end
+if option and option ~= "short" and option ~= "full" and option ~= "graphic" then
+	if type(option) == "string" then
+		session.print(option)
+	elseif type(option) == "function" then
+		setfenv(option, redirect_output(_G, session));
+		pcall(option, session);
+	end
+end
+end
--- a/plugins/mod_saslauth.lua	Mon Jul 06 01:37:57 2009 +0500
+++ b/plugins/mod_saslauth.lua	Mon Jul 06 01:40:43 2009 +0500
@@ -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/hmac.lua	Mon Jul 06 01:37:57 2009 +0500
+++ b/util/hmac.lua	Mon Jul 06 01:40:43 2009 +0500
@@ -1,15 +1,18 @@
 local hashes = require "util.hashes"
 local xor = require "bit".bxor
 
+local t_insert, t_concat = table.insert, table.concat;
+local s_char = string.char;
+
 module "hmac"
 
 local function arraystr(array)
-    t = {}
-    for i = 1,table.getn(array) do
-        table.insert(t, string.char(array[i]))
+    local t = {}
+    for i = 1,#array do
+        t_insert(t, s_char(array[i]))
     end
 
-    return table.concat(t)
+    return t_concat(t)
 end
 
 --[[
--- a/util/sasl.lua	Mon Jul 06 01:37:57 2009 +0500
+++ b/util/sasl.lua	Mon Jul 06 01:40:43 2009 +0500
@@ -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 = "";