@@ -85,14 +85,20 @@ enable_event(HookName) when is_atom(HookName) ->
8585disable_event (HookName ) when is_atom (HookName ) ->
8686 gen_server :call (? MODULE , {disable_event , HookName }).
8787
88- -spec enable_sampling (Hook :: on_publish | on_deliver , Criterion :: binary (), Percent :: integer ()) ->
88+ -spec enable_sampling (
89+ Hook :: on_publish | on_deliver | on_delivery_complete ,
90+ Criterion :: binary (),
91+ Percent :: integer ()
92+ ) ->
8993 ok .
9094enable_sampling (Hook , Criterion , Percent ) when
9195 is_atom (Hook ) and is_binary (Criterion ) and is_integer (Percent )
9296->
9397 gen_server :call (? MODULE , {enable_sampling , Hook , Criterion , Percent }).
9498
95- -spec disable_sampling (Hook :: on_publish | on_deliver , Criterion :: binary ()) ->
99+ -spec disable_sampling (
100+ Hook :: on_publish | on_deliver | on_delivery_complete , Criterion :: binary ()
101+ ) ->
96102 ok | {error , not_found }.
97103disable_sampling (Hook , Criterion ) when is_atom (Hook ) and is_binary (Criterion ) ->
98104 gen_server :call (? MODULE , {disable_sampling , Hook , Criterion }).
@@ -107,7 +113,7 @@ all_hooks() ->
107113 ? TBL
108114 ).
109115
110- -spec list_sampling_conf (Hook :: on_publish | on_deliver ) -> [term ()].
116+ -spec list_sampling_conf (Hook :: on_publish | on_deliver | on_delivery_complete ) -> [term ()].
111117list_sampling_conf (Hook ) ->
112118 ets :match (? SAMPLER_TBL , {{Hook , '$1' }, '$2' }).
113119
@@ -319,12 +325,22 @@ on_deliver(
319325 username (), subscriber_id (), qos (), topic (), payload (), flag (), matched_acl (), flag ()
320326) ->
321327 'next' .
322- on_delivery_complete (UserName , SubscriberId , QoS , Topic , Payload , IsRetain , MatchedAcl , Persisted ) ->
328+ on_delivery_complete (
329+ UserName ,
330+ SubscriberId ,
331+ QoS ,
332+ Topic ,
333+ Payload ,
334+ IsRetain ,
335+ # matched_acl {name = ACL } = MatchedAcl ,
336+ Persisted
337+ ) ->
323338 {MP , ClientId } = subscriber_id (SubscriberId ),
324339 send_event (
325340 on_delivery_complete ,
326341 {MP , ClientId , normalise (UserName ), QoS , unword (Topic ), Payload , IsRetain , MatchedAcl ,
327- Persisted }
342+ Persisted },
343+ ACL
328344 ).
329345
330346-spec on_offline_message (subscriber_id (), qos (), topic (), payload (), flag ()) -> 'next' .
@@ -474,6 +490,8 @@ sample(Hook, Criterion) ->
474490 check (Hook , Criterion );
475491 on_deliver ->
476492 check (Hook , Criterion );
493+ on_delivery_complete ->
494+ check (Hook , Criterion );
477495 _ ->
478496 true
479497 end .
0 commit comments