From f0db7623d1169fdb631b012b2c5e41e96d42c2c9 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 9 Aug 2023 00:11:43 +0200 Subject: [PATCH] mod_push_keepalive: Don't let hook crash Check whether mod_push_keepalive is loaded for a given host before querying the module configuration for that host. This avoids a hook crash in the case where the module is enabled for some but not all hosts. --- src/mod_push_keepalive.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mod_push_keepalive.erl b/src/mod_push_keepalive.erl index 44d4d8aec..3d38e1d89 100644 --- a/src/mod_push_keepalive.erl +++ b/src/mod_push_keepalive.erl @@ -234,8 +234,11 @@ c2s_handle_info(State, _) -> -spec ejabberd_started() -> ok. ejabberd_started() -> - [wake_all(Host) || Host <- ejabberd_config:get_option(hosts), - mod_push_keepalive_opt:wake_on_start(Host)], + Pred = fun(Host) -> + gen_mod:is_loaded(Host, ?MODULE) andalso + mod_push_keepalive_opt:wake_on_start(Host) + end, + [wake_all(Host) || Host <- ejabberd_config:get_option(hosts), Pred(Host)], ok. %%--------------------------------------------------------------------