Skip to content

Commit

Permalink
Move MAM hooks to a handler
Browse files Browse the repository at this point in the history
  • Loading branch information
gustawlippa committed Apr 23, 2021
1 parent f5b2d09 commit 9ea2274
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 35 deletions.
57 changes: 27 additions & 30 deletions src/mam/mod_mam.erl
Original file line number Diff line number Diff line change
Expand Up @@ -210,29 +210,15 @@ start(Host, Opts) ->
?MODULE, process_mam_iq, IQDisc),
gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_MAM_06,
?MODULE, process_mam_iq, IQDisc),
ejabberd_hooks:add(user_send_packet, Host, ?MODULE, user_send_packet, 90),
ejabberd_hooks:add(rest_user_send_packet, Host, ?MODULE, user_send_packet, 90),
ejabberd_hooks:add(filter_local_packet, Host, ?MODULE, filter_packet, 90),
ejabberd_hooks:add(remove_user, Host, ?MODULE, remove_user, 50),
ejabberd_hooks:add(anonymous_purge_hook, Host, ?MODULE, remove_user, 50),
ejabberd_hooks:add(amp_determine_strategy, Host, ?MODULE, determine_amp_strategy, 20),
ejabberd_hooks:add(sm_filter_offline_message, Host, ?MODULE, sm_filter_offline_message, 50),
ejabberd_hooks:add(get_personal_data, Host, ?MODULE, get_personal_data, 50),
ejabberd_hooks:add(hooks(Host)),
ensure_metrics(Host),
ok.


-spec stop(Host :: jid:server()) -> any().
stop(Host) ->
?LOG_INFO(#{what => mam_stopping}),
ejabberd_hooks:delete(sm_filter_offline_message, Host, ?MODULE, sm_filter_offline_message, 50),
ejabberd_hooks:delete(user_send_packet, Host, ?MODULE, user_send_packet, 90),
ejabberd_hooks:delete(rest_user_send_packet, Host, ?MODULE, user_send_packet, 90),
ejabberd_hooks:delete(filter_local_packet, Host, ?MODULE, filter_packet, 90),
ejabberd_hooks:delete(remove_user, Host, ?MODULE, remove_user, 50),
ejabberd_hooks:delete(anonymous_purge_hook, Host, ?MODULE, remove_user, 50),
ejabberd_hooks:delete(amp_determine_strategy, Host, ?MODULE, determine_amp_strategy, 20),
ejabberd_hooks:delete(get_personal_data, Host, ?MODULE, get_personal_data, 50),
ejabberd_hooks:delete(hooks(Host)),
gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_MAM_04),
gen_iq_handler:remove_iq_handler(ejabberd_sm, Host, ?NS_MAM_06),
[mod_disco:unregister_feature(Host, Feature) || Feature <- features(?MODULE, Host)],
Expand Down Expand Up @@ -685,27 +671,38 @@ config_metrics(Host) ->
OptsToReport = [{backend, rdbms}], %list of tuples {option, default_value}
mongoose_module_metrics:opts_for_module(Host, ?MODULE, OptsToReport).

-spec hooks(jid:lserver()) -> [ejabberd_hooks:hook()].
hooks(Host) ->
[{user_send_packet, Host, ?MODULE, user_send_packet, 90},
{rest_user_send_packet, Host, ?MODULE, user_send_packet, 90},
{filter_local_packet, Host, ?MODULE, filter_packet, 90},
{remove_user, Host, ?MODULE, remove_user, 50},
{anonymous_purge_hook, Host, ?MODULE, remove_user, 50},
{amp_determine_strategy, Host, ?MODULE, determine_amp_strategy, 20},
{sm_filter_offline_message, Host, ?MODULE, sm_filter_offline_message, 50},
{get_personal_data, Host, ?MODULE, get_personal_data, 50}
| mongoose_metrics_mam_hooks:get_mam_hooks(Host)].


ensure_metrics(Host) ->
mongoose_metrics:ensure_metric(Host, [backends, ?MODULE, lookup], histogram),
mongoose_metrics:ensure_metric(Host, [Host, modMamLookups, simple], spiral),
mongoose_metrics:ensure_metric(Host, [backends, ?MODULE, archive], histogram),
lists:foreach(fun(Name) ->
mongoose_metrics:ensure_metric(Host, Name, spiral)
end,
spirals()),
Hooks = mongoose_metrics_mam_hooks:get_hooks(Host),
ejabberd_hooks:add(Hooks).
spirals()).

spirals() ->
[modMamPrefsSets,
modMamPrefsGets,
modMamArchiveRemoved,
modMamLookups,
modMamForwarded,
modMamArchived,
modMamFlushed,
modMamDropped,
modMamDropped2,
modMamDroppedIQ,
modMamSinglePurges,
modMamMultiplePurges].
modMamPrefsGets,
modMamArchiveRemoved,
modMamLookups,
modMamForwarded,
modMamArchived,
modMamFlushed,
modMamDropped,
modMamDropped2,
modMamDroppedIQ,
modMamSinglePurges,
modMamMultiplePurges].
17 changes: 12 additions & 5 deletions src/metrics/mongoose_metrics_mam_hooks.erl
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@
-include("mongoose.hrl").
-include("jlib.hrl").

-export([get_hooks/1]).
-export([get_mam_hooks/1,
get_mam_muc_hooks/1]).

%%-------------------
%% Internal exports
Expand All @@ -33,15 +34,21 @@
%% Implementation
%%-------------------

%% @doc Here will be declared which hooks should be registered
-spec get_hooks(_) -> [ejabberd_hooks:hook(), ...].
get_hooks(Host) ->
%% @doc Here will be declared which hooks should be registered when mod_mam is enabled.
-spec get_mam_hooks(_) -> [ejabberd_hooks:hook(), ...].
get_mam_hooks(Host) ->
[
{mam_set_prefs, Host, ?MODULE, mam_set_prefs, 50},
{mam_get_prefs, Host, ?MODULE, mam_get_prefs, 50},
{mam_archive_message, Host, ?MODULE, mam_archive_message, 50},
{mam_remove_archive, Host, ?MODULE, mam_remove_archive, 50},
{mam_lookup_messages, Host, ?MODULE, mam_lookup_messages, 100},
{mam_lookup_messages, Host, ?MODULE, mam_lookup_messages, 100}
].

%% @doc Here will be declared which hooks should be registered when mod_mam_muc is enabled.
-spec get_mam_muc_hooks(_) -> [ejabberd_hooks:hook(), ...].
get_mam_muc_hooks(Host) ->
[
{mam_muc_set_prefs, Host, ?MODULE, mam_muc_set_prefs, 50},
{mam_muc_get_prefs, Host, ?MODULE, mam_muc_get_prefs, 50},
{mam_muc_archive_message, Host, ?MODULE, mam_muc_archive_message, 50},
Expand Down

0 comments on commit 9ea2274

Please sign in to comment.