Changeset

6326:a3b9496673ee

Merge 0.9->0.10
author Matthew Wild <mwild1@gmail.com>
date Thu, 31 Jul 2014 07:11:54 +0100
parents 6320:17344d25a0f6 (current diff) 6325:13a43fe90d9f (diff)
children 6327:5a63f489dcc6 6337:925aceee8280
files core/configmanager.lua prosodyctl
diffstat 2 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/core/configmanager.lua	Fri Jul 25 21:03:16 2014 +0200
+++ b/core/configmanager.lua	Thu Jul 31 07:11:54 2014 +0100
@@ -19,6 +19,9 @@
 local glob_to_pattern = require"util.paths".glob_to_pattern;
 local path_sep = package.config:sub(1,1);
 
+local have_encodings, encodings = pcall(require, "util.encodings");
+local nameprep = have_encodings and encodings.stringprep.nameprep or function (host) return host:lower(); end
+
 module "configmanager"
 
 _M.resolve_relative_path = resolve_relative_path; -- COMPAT
@@ -139,6 +142,7 @@
 
 		rawset(env, "__currenthost", "*") -- Default is global
 		function env.VirtualHost(name)
+			name = nameprep(name);
 			if rawget(config, name) and rawget(config[name], "component_module") then
 				error(format("Host %q clashes with previously defined %s Component %q, for services use a sub-domain like conference.%s",
 					name, config[name].component_module:gsub("^%a+$", { component = "external", muc = "MUC"}), name, name), 0);
@@ -156,6 +160,7 @@
 		env.Host, env.host = env.VirtualHost, env.VirtualHost;
 
 		function env.Component(name)
+			name = nameprep(name);
 			if rawget(config, name) and rawget(config[name], "defined") and not rawget(config[name], "component_module") then
 				error(format("Component %q clashes with previously defined Host %q, for services use a sub-domain like conference.%s",
 					name, name, name), 0);
--- a/prosodyctl	Fri Jul 25 21:03:16 2014 +0200
+++ b/prosodyctl	Thu Jul 31 07:11:54 2014 +0100
@@ -268,13 +268,14 @@
 local show_prompt = prosodyctl.show_prompt;
 local read_password = prosodyctl.read_password;
 
+local jid_split = require "util.jid".prepped_split;
+
 local prosodyctl_timeout = (config.get("*", "prosodyctl_timeout") or 5) * 2;
 -----------------------
 local commands = {};
 local command = arg[1];
 
 function commands.adduser(arg)
-	local jid_split = require "util.jid".split;
 	if not arg[1] or arg[1] == "--help" then
 		show_usage([[adduser JID]], [[Create the specified user account in Prosody]]);
 		return 1;
@@ -314,7 +315,6 @@
 end
 
 function commands.passwd(arg)
-	local jid_split = require "util.jid".split;
 	if not arg[1] or arg[1] == "--help" then
 		show_usage([[passwd JID]], [[Set the password for the specified user account in Prosody]]);
 		return 1;
@@ -354,7 +354,6 @@
 end
 
 function commands.deluser(arg)
-	local jid_split = require "util.jid".split;
 	if not arg[1] or arg[1] == "--help" then
 		show_usage([[deluser JID]], [[Permanently remove the specified user account from Prosody]]);
 		return 1;
@@ -373,7 +372,6 @@
 	
 	if not hosts[host] then
 		show_warning("The host '%s' is not listed in the configuration file (or is not enabled).", host)
-		show_warning("The user will not be able to log in until this is changed.");
 		hosts[host] = make_host(host);
 	end