aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/ejabberd_acme.erl4
-rw-r--r--src/ejabberd_pkix.erl18
2 files changed, 12 insertions, 10 deletions
diff --git a/src/ejabberd_acme.erl b/src/ejabberd_acme.erl
index 8eba9a352..9793b170e 100644
--- a/src/ejabberd_acme.erl
+++ b/src/ejabberd_acme.erl
@@ -17,7 +17,7 @@
%% gen_server callbacks
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
terminate/2, code_change/3]).
--export([start_link/0, opt_type/1]).
+-export([start_link/0, opt_type/1, register_certfiles/0]).
-include("ejabberd.hrl").
-include("logger.hrl").
@@ -40,6 +40,7 @@ start_link() ->
init([]) ->
case filelib:ensure_dir(filename:join(acme_certs_dir(), "foo")) of
ok ->
+ ejabberd_hooks:add(config_reloaded, ?MODULE, register_certfiles, 40),
ejabberd_commands:register_commands(get_commands_spec()),
register_certfiles(),
{ok, #state{}};
@@ -61,6 +62,7 @@ handle_info(_Info, State) ->
{noreply, State}.
terminate(_Reason, _State) ->
+ ejabberd_hooks:delete(config_reloaded, ?MODULE, register_certfiles, 40),
ejabberd_commands:unregister_commands(get_commands_spec()).
code_change(_OldVsn, State, _Extra) ->
diff --git a/src/ejabberd_pkix.erl b/src/ejabberd_pkix.erl
index 2fad9ea4c..37ec8b1cf 100644
--- a/src/ejabberd_pkix.erl
+++ b/src/ejabberd_pkix.erl
@@ -143,7 +143,7 @@ start_link() ->
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
config_reloaded() ->
- gen_server:cast(?MODULE, config_reloaded).
+ gen_server:call(?MODULE, config_reloaded, 60000).
opt_type(ca_path) ->
fun(Path) -> iolist_to_binary(Path) end;
@@ -219,18 +219,18 @@ handle_call({route_registered, Host}, _, State) ->
{error, _} ->
{reply, ok, State}
end;
-handle_call(_Request, _From, State) ->
- Reply = ok,
- {reply, Reply, State}.
-
-handle_cast(config_reloaded, State) ->
+handle_call(config_reloaded, _From, State) ->
State1 = State#state{paths = [], certs = #{}, keys = []},
case add_certfiles(State1) of
{ok, State2} ->
- {noreply, State2};
- {error, _} ->
- {noreply, State}
+ {reply, ok, State2};
+ {error, _} = Err ->
+ {reply, Err, State}
end;
+handle_call(_Request, _From, State) ->
+ Reply = ok,
+ {reply, Reply, State}.
+
handle_cast(_Msg, State) ->
{noreply, State}.