diff options
Diffstat (limited to 'src/ejabberd_config.erl')
-rw-r--r-- | src/ejabberd_config.erl | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl index 6146695c2..90bbed179 100644 --- a/src/ejabberd_config.erl +++ b/src/ejabberd_config.erl @@ -500,7 +500,8 @@ get_config_option_key(Name, Val) -> maps_to_lists(IMap) -> maps:fold(fun(Name, Map, Res) when Name == host_config orelse Name == append_host_config -> - [{Name, [{Host, maps_to_lists(SMap)} || {Host,SMap} <- maps:values(Map)]} | Res]; + [{Name, [{jid:nameprep(Host), maps_to_lists(SMap)} || + {Host,SMap} <- maps:values(Map)]} | Res]; (Name, Map, Res) when is_map(Map) -> [{Name, maps:values(Map)} | Res]; (Name, Val, Res) -> @@ -513,8 +514,9 @@ merge_configs(Terms, ResMap) -> New = lists:foldl(fun(SVal, OMap) -> NVal = if Name == host_config orelse Name == append_host_config -> {Host, Opts} = SVal, - {_, SubMap} = maps:get(Host, OMap, {Host, #{}}), - {Host, merge_configs(Opts, SubMap)}; + HostNP = jid:nameprep(Host), + {_, SubMap} = maps:get(HostNP, OMap, {HostNP, #{}}), + {HostNP, merge_configs(Opts, SubMap)}; true -> SVal end, @@ -1081,12 +1083,12 @@ validate_opts(#state{opts = Opts} = State, ModOpts) -> ?ERROR_MSG("Invalid value for " "option '~s' (~s): ~s", [Opt, Error, - misc:format_val(Val)]), + misc:format_val({yaml, Val})]), erlang:error(invalid_option); - _:_ -> + _:R when R /= undef -> ?ERROR_MSG("Invalid value for " "option '~s': ~s", - [Opt, misc:format_val(Val)]), + [Opt, misc:format_val({yaml, Val})]), erlang:error(invalid_option) end; _ -> |