diff --git a/apps/emqx_rule_engine/src/emqx_rule_engine.app.src b/apps/emqx_rule_engine/src/emqx_rule_engine.app.src index 6419e4184..8608cd67a 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_engine.app.src +++ b/apps/emqx_rule_engine/src/emqx_rule_engine.app.src @@ -2,7 +2,7 @@ {application, emqx_rule_engine, [ {description, "EMQX Rule Engine"}, % strict semver, bump manually! - {vsn, "5.0.4"}, + {vsn, "5.0.5"}, {modules, []}, {registered, [emqx_rule_engine_sup, emqx_rule_engine]}, {applications, [kernel, stdlib, rulesql, getopt]}, diff --git a/apps/emqx_rule_engine/src/emqx_rule_events.erl b/apps/emqx_rule_engine/src/emqx_rule_events.erl index b80b9777a..05d90179f 100644 --- a/apps/emqx_rule_engine/src/emqx_rule_events.erl +++ b/apps/emqx_rule_engine/src/emqx_rule_events.erl @@ -89,20 +89,20 @@ reload() -> load(Topic) -> HookPoint = event_name(Topic), emqx_hooks:put( - HookPoint, {?MODULE, hook_fun(HookPoint), [#{event_topic => Topic}]}, ?HP_RULE_ENGINE + HookPoint, {hook_fun(HookPoint), [#{event_topic => Topic}]}, ?HP_RULE_ENGINE ). unload() -> lists:foreach( fun(HookPoint) -> - emqx_hooks:del(HookPoint, {?MODULE, hook_fun(HookPoint)}) + emqx_hooks:del(HookPoint, hook_fun(HookPoint)) end, event_names() ). unload(Topic) -> HookPoint = event_name(Topic), - emqx_hooks:del(HookPoint, {?MODULE, hook_fun(HookPoint)}). + emqx_hooks:del(HookPoint, hook_fun(HookPoint)). %%-------------------------------------------------------------------- %% Callbacks @@ -987,15 +987,19 @@ columns_example_props_specific(unsub_props) -> %% Helper functions %%-------------------------------------------------------------------- -hook_fun(<<"$bridges/", _/binary>>) -> - on_bridge_message_received; -hook_fun(Event) -> - case string:split(atom_to_list(Event), ".") of - [Prefix, Name] -> - list_to_atom(lists:append(["on_", Prefix, "_", Name])); - [_] -> - error(invalid_event, Event) - end. +hook_fun(<<"$bridges/", _/binary>>) -> fun ?MODULE:on_bridge_message_received/2; +hook_fun('client.connected') -> fun ?MODULE:on_client_connected/3; +hook_fun('client.disconnected') -> fun ?MODULE:on_client_disconnected/4; +hook_fun('client.connack') -> fun ?MODULE:on_client_connack/4; +hook_fun('client.check_authz_complete') -> fun ?MODULE:on_client_check_authz_complete/6; +hook_fun('session.subscribed') -> fun ?MODULE:on_session_subscribed/4; +hook_fun('session.unsubscribed') -> fun ?MODULE:on_session_unsubscribed/4; +hook_fun('message.delivered') -> fun ?MODULE:on_message_delivered/3; +hook_fun('message.acked') -> fun ?MODULE:on_message_acked/3; +hook_fun('message.dropped') -> fun ?MODULE:on_message_dropped/4; +hook_fun('delivery.dropped') -> fun ?MODULE:on_delivery_dropped/4; +hook_fun('message.publish') -> fun ?MODULE:on_message_publish/2; +hook_fun(Event) -> error({invalid_event, Event}). reason(Reason) when is_atom(Reason) -> Reason; reason({shutdown, Reason}) when is_atom(Reason) -> Reason;