diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2015-08-19 10:14:09 +0200 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2015-08-19 10:14:39 +0200 |
commit | 6f0ee8331740f5b142d37789752c8a67883e80d9 (patch) | |
tree | 8b56c9e273700c3f35d75e5c2a4d56ee8c5a226c | |
parent | Catch 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.erl | 5 |
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 -> |