1
0
Fork 0
mirror of https://github.com/processone/ejabberd synced 2025-10-03 09:49:18 +02:00

ejabberd_c2s: Fix priority of 'certfile' option

Use the 'certfile' listener option rather than a 'domain_certfile' for
ejabberd_c2s listeners that have "tls: true" configured.  A
'domain_certfile' should only be preferred for STARTTLS connections.

Closes #1911.
This commit is contained in:
Holger Weiss 2017-08-05 18:59:32 +02:00
parent 101e808124
commit e1aaa1c99d

View file

@ -297,14 +297,19 @@ process_terminated(State, _Reason) ->
%%%=================================================================== %%%===================================================================
%%% xmpp_stream_in callbacks %%% xmpp_stream_in callbacks
%%%=================================================================== %%%===================================================================
tls_options(#{lserver := LServer, tls_options := DefaultOpts}) -> tls_options(#{lserver := LServer, tls_options := DefaultOpts,
TLSOpts1 = case ejabberd_config:get_option( stream_encrypted := Encrypted}) ->
TLSOpts1 = case {Encrypted, proplists:get_value(certfile, DefaultOpts)} of
{true, CertFile} when CertFile /= undefined -> DefaultOpts;
{_, _} ->
case ejabberd_config:get_option(
{c2s_certfile, LServer}, {c2s_certfile, LServer},
ejabberd_config:get_option( ejabberd_config:get_option(
{domain_certfile, LServer})) of {domain_certfile, LServer})) of
undefined -> DefaultOpts; undefined -> DefaultOpts;
CertFile -> lists:keystore(certfile, 1, DefaultOpts, CertFile -> lists:keystore(certfile, 1, DefaultOpts,
{certfile, CertFile}) {certfile, CertFile})
end
end, end,
TLSOpts2 = case ejabberd_config:get_option( TLSOpts2 = case ejabberd_config:get_option(
{c2s_ciphers, LServer}) of {c2s_ciphers, LServer}) of