aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaweł Chmielowski <pchmielowski@process-one.net>2015-08-19 10:14:09 +0200
committerPaweł Chmielowski <pchmielowski@process-one.net>2015-08-19 10:14:39 +0200
commit6f0ee8331740f5b142d37789752c8a67883e80d9 (patch)
tree8b56c9e273700c3f35d75e5c2a4d56ee8c5a226c
parentCatch errors when calling inet:peername in ejabberd_http (diff)
Don't overwrite listeners for different transports in config merging
Before this having listeners on same port for both tcp and udp would after config merging step left only one of them. Many thanks to Holger Weiß for noticing this.
-rw-r--r--src/ejabberd_config.erl5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl
index abb295a75..89e1399fa 100644
--- a/src/ejabberd_config.erl
+++ b/src/ejabberd_config.erl
@@ -370,7 +370,10 @@ exit_or_halt(ExitText) ->
get_config_option_key(Name, Val) ->
if Name == listen ->
- lists:keyfind(port, 1, Val);
+ case {lists:keyfind(port, 1, Val), lists:keyfind(transport, 1, Val)} of
+ {{_, Port}, false} -> {Port, tcp};
+ {{_, Port2}, {_, Trans}} -> {Port2, Trans}
+ end;
is_tuple(Val) ->
element(1, Val);
true ->