aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2014-07-31 07:11:54 +0100
committerMatthew Wild <mwild1@gmail.com>2014-07-31 07:11:54 +0100
commit3b8d61bf9828b5aa1e4f1776b306aeea5dfe8bb7 (patch)
tree3515ba9cb92ea9093dcb8f81c3bc71983fe46b29 /core
parenta960fa32aced10e5c55a68286eef89d78a3748e9 (diff)
parent56339d76da26b41c723b5b44d660f9462622a3b4 (diff)
downloadprosody-3b8d61bf9828b5aa1e4f1776b306aeea5dfe8bb7.tar.gz
prosody-3b8d61bf9828b5aa1e4f1776b306aeea5dfe8bb7.zip
Merge 0.9->0.10
Diffstat (limited to 'core')
-rw-r--r--core/configmanager.lua5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/configmanager.lua b/core/configmanager.lua
index 1f7342b2..48f039ea 100644
--- a/core/configmanager.lua
+++ b/core/configmanager.lua
@@ -19,6 +19,9 @@ local resolve_relative_path = require"util.paths".resolve_relative_path;
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 @@ do
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 @@ do
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);