Merge 0.9->0.10
authorMatthew Wild <mwild1@gmail.com>
Thu, 31 Jul 2014 07:11:54 +0100
changeset 6326 a3b9496673ee
parent 6320 17344d25a0f6 (current diff)
parent 6325 13a43fe90d9f (diff)
child 6327 5a63f489dcc6
child 6337 925aceee8280
Merge 0.9->0.10
core/configmanager.lua
prosodyctl
--- 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