summaryrefslogtreecommitdiff
path: root/src/ejabberd_pkix.erl
diff options
context:
space:
mode:
authorKonstantinos Kallas <konstantinos.kallas@hotmail.com>2017-08-19 12:50:40 +0300
committerKonstantinos Kallas <konstantinos.kallas@hotmail.com>2017-08-19 12:50:40 +0300
commit7cc7b74f1e8966c7e92e63bb5c604ee12da93fb5 (patch)
tree6952b9b48eeea0cf7b7d57c8816503e7cdc4b851 /src/ejabberd_pkix.erl
parentAdd behaviour ejabberd_config in ejabberd_acme in order to validate the config (diff)
Add acme certificates for all configured hosts in ejabberd_pkix
Diffstat (limited to 'src/ejabberd_pkix.erl')
-rw-r--r--src/ejabberd_pkix.erl27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/ejabberd_pkix.erl b/src/ejabberd_pkix.erl
index f9f0472f..89b33b8a 100644
--- a/src/ejabberd_pkix.erl
+++ b/src/ejabberd_pkix.erl
@@ -204,15 +204,24 @@ add_certfiles(State) ->
end, State, ejabberd_config:get_myhosts()).
add_certfiles(Host, State) ->
- lists:foldl(
- fun(Opt, AccState) ->
- case ejabberd_config:get_option({Opt, Host}) of
- undefined -> AccState;
- Path ->
- {_, NewAccState} = add_certfile(Path, AccState),
- NewAccState
- end
- end, State, [c2s_certfile, s2s_certfile, domain_certfile]).
+ NewState =
+ lists:foldl(
+ fun(Opt, AccState) ->
+ case ejabberd_config:get_option({Opt, Host}) of
+ undefined -> AccState;
+ Path ->
+ {_, NewAccState} = add_certfile(Path, AccState),
+ NewAccState
+ end
+ end, State, [c2s_certfile, s2s_certfile, domain_certfile]),
+ %% Add acme certificate if it exists
+ case ejabberd_acme:certificate_exists(Host) of
+ {true, Path} ->
+ {_, FinalState} = add_certfile(Path, NewState),
+ FinalState;
+ false ->
+ NewState
+ end.
add_certfile(Path, State) ->
case maps:get(Path, State#state.certs, undefined) of