Be able to merge old style configs with {listen,...}

This commit is contained in:
Paweł Chmielowski 2015-10-08 13:07:00 +02:00
parent 6d25db6600
commit b5ac0db895
1 changed files with 21 additions and 11 deletions

View File

@ -372,16 +372,27 @@ exit_or_halt(ExitText) ->
get_config_option_key(Name, Val) -> get_config_option_key(Name, Val) ->
if Name == listen -> if Name == listen ->
lists:foldl( case Val of
fun({port, Port}, {_, IP, T}) -> {{Port, IP, Trans}, _Mod, _Opts} ->
{Port, IP, T}; {Port, IP, Trans};
({ip, IP}, {Port, _, T}) -> {{Port, Trans}, _Mod, _Opts} when Trans == tcp; Trans == udp ->
{Port, IP, T}; {Port, {0,0,0,0}, Trans};
({transport, T}, {Port, IP, _}) -> {{Port, IP}, _Mod, _Opts} ->
{Port, IP, T}; {Port, IP, tcp};
(_, Res) -> {Port, _Mod, _Opts} ->
Res {Port, {0,0,0,0}, tcp};
end, {5222, {0,0,0,0}, tcp}, Val); V when is_list(V) ->
lists:foldl(
fun({port, Port}, {_, IP, T}) ->
{Port, IP, T};
({ip, IP}, {Port, _, T}) ->
{Port, IP, T};
({transport, T}, {Port, IP, _}) ->
{Port, IP, T};
(_, Res) ->
Res
end, {5222, {0,0,0,0}, tcp}, Val)
end;
is_tuple(Val) -> is_tuple(Val) ->
element(1, Val); element(1, Val);
true -> true ->
@ -397,7 +408,6 @@ maps_to_lists(IMap) ->
[{Name, Val} | Res] [{Name, Val} | Res]
end, [], IMap). end, [], IMap).
merge_configs(Terms, ResMap) -> merge_configs(Terms, ResMap) ->
lists:foldl(fun({Name, Val}, Map) when is_list(Val) -> lists:foldl(fun({Name, Val}, Map) when is_list(Val) ->
Old = maps:get(Name, Map, #{}), Old = maps:get(Name, Map, #{}),