X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fconfigmanager.lua;h=48f039eac8c3eea55ebe45c64efe23b10cdb93e7;hb=9c2f0d411179d87e9444bef51171df05128ec07d;hp=1f7342b2e3f9b9efd7cdee394f55840a0c6ca8b3;hpb=acfe6e56b1ede14b25e05f6a2d87880f031f5d1b;p=prosody.git 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);