mirror of
https://github.com/processone/ejabberd.git
synced 2024-11-24 16:23:40 +01:00
Re-read ACME certificates on config reload
This commit is contained in:
parent
f06805534c
commit
e709d6561c
@ -17,7 +17,7 @@
|
|||||||
%% gen_server callbacks
|
%% gen_server callbacks
|
||||||
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
||||||
terminate/2, code_change/3]).
|
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("ejabberd.hrl").
|
||||||
-include("logger.hrl").
|
-include("logger.hrl").
|
||||||
@ -40,6 +40,7 @@ start_link() ->
|
|||||||
init([]) ->
|
init([]) ->
|
||||||
case filelib:ensure_dir(filename:join(acme_certs_dir(), "foo")) of
|
case filelib:ensure_dir(filename:join(acme_certs_dir(), "foo")) of
|
||||||
ok ->
|
ok ->
|
||||||
|
ejabberd_hooks:add(config_reloaded, ?MODULE, register_certfiles, 40),
|
||||||
ejabberd_commands:register_commands(get_commands_spec()),
|
ejabberd_commands:register_commands(get_commands_spec()),
|
||||||
register_certfiles(),
|
register_certfiles(),
|
||||||
{ok, #state{}};
|
{ok, #state{}};
|
||||||
@ -61,6 +62,7 @@ handle_info(_Info, State) ->
|
|||||||
{noreply, State}.
|
{noreply, State}.
|
||||||
|
|
||||||
terminate(_Reason, _State) ->
|
terminate(_Reason, _State) ->
|
||||||
|
ejabberd_hooks:delete(config_reloaded, ?MODULE, register_certfiles, 40),
|
||||||
ejabberd_commands:unregister_commands(get_commands_spec()).
|
ejabberd_commands:unregister_commands(get_commands_spec()).
|
||||||
|
|
||||||
code_change(_OldVsn, State, _Extra) ->
|
code_change(_OldVsn, State, _Extra) ->
|
||||||
|
@ -143,7 +143,7 @@ start_link() ->
|
|||||||
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
|
gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
|
||||||
|
|
||||||
config_reloaded() ->
|
config_reloaded() ->
|
||||||
gen_server:cast(?MODULE, config_reloaded).
|
gen_server:call(?MODULE, config_reloaded, 60000).
|
||||||
|
|
||||||
opt_type(ca_path) ->
|
opt_type(ca_path) ->
|
||||||
fun(Path) -> iolist_to_binary(Path) end;
|
fun(Path) -> iolist_to_binary(Path) end;
|
||||||
@ -219,18 +219,18 @@ handle_call({route_registered, Host}, _, State) ->
|
|||||||
{error, _} ->
|
{error, _} ->
|
||||||
{reply, ok, State}
|
{reply, ok, State}
|
||||||
end;
|
end;
|
||||||
|
handle_call(config_reloaded, _From, State) ->
|
||||||
|
State1 = State#state{paths = [], certs = #{}, keys = []},
|
||||||
|
case add_certfiles(State1) of
|
||||||
|
{ok, State2} ->
|
||||||
|
{reply, ok, State2};
|
||||||
|
{error, _} = Err ->
|
||||||
|
{reply, Err, State}
|
||||||
|
end;
|
||||||
handle_call(_Request, _From, State) ->
|
handle_call(_Request, _From, State) ->
|
||||||
Reply = ok,
|
Reply = ok,
|
||||||
{reply, Reply, State}.
|
{reply, Reply, State}.
|
||||||
|
|
||||||
handle_cast(config_reloaded, State) ->
|
|
||||||
State1 = State#state{paths = [], certs = #{}, keys = []},
|
|
||||||
case add_certfiles(State1) of
|
|
||||||
{ok, State2} ->
|
|
||||||
{noreply, State2};
|
|
||||||
{error, _} ->
|
|
||||||
{noreply, State}
|
|
||||||
end;
|
|
||||||
handle_cast(_Msg, State) ->
|
handle_cast(_Msg, State) ->
|
||||||
{noreply, State}.
|
{noreply, State}.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user