# HG changeset patch # User Matthew Wild # Date 1406787114 -3600 # Node ID a3b9496673ee2a7679ca7c56e9d7764d4fd552b9 # Parent 17344d25a0f6aee15cbcc655da5e78bfe839f074# Parent 13a43fe90d9f6583b0356b20da4bc2355a55a878 Merge 0.9->0.10 diff -r 17344d25a0f6 -r a3b9496673ee core/configmanager.lua --- 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); diff -r 17344d25a0f6 -r a3b9496673ee prosodyctl --- 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