Просмотр исходного кода

chore(exhook): add a comment to bool type

JianBo He 5 лет назад
Родитель
Сommit
b7a8884d4a
2 измененных файлов с 16 добавлено и 9 удалено
  1. 2 1
      apps/emqx_exhook/src/emqx_exhook.erl
  2. 14 8
      apps/emqx_exhook/src/emqx_exhook_handler.erl

+ 2 - 1
apps/emqx_exhook/src/emqx_exhook.erl

@@ -96,7 +96,8 @@ call_fold(Hookpoint, Req, AccFun, [ServiceName|More]) ->
         {ok, Resp} ->
             case AccFun(Req, Resp) of
                 {stop, NReq} -> {stop, NReq};
-                {ok, NReq} -> call_fold(Hookpoint, NReq, AccFun, More)
+                {ok, NReq} -> call_fold(Hookpoint, NReq, AccFun, More);
+                _ -> call_fold(Hookpoint, Req, AccFun, More)
             end;
         _ ->
             call_fold(Hookpoint, Req, AccFun, More)

+ 14 - 8
apps/emqx_exhook/src/emqx_exhook_handler.erl

@@ -89,6 +89,12 @@ on_client_disconnected(ClientInfo, Reason, _ConnInfo) ->
     cast('client.disconnected', Req).
 
 on_client_authenticate(ClientInfo, AuthResult) ->
+    %% XXX: Bool is missing more information about the atom of the result
+    %%      So, the `Req` has missed detailed info too.
+    %%
+    %%      The return value of `call_fold` just a bool, that has missed
+    %%      detailed info too.
+    %%
     Bool = maps:get(auth_result, AuthResult, undefined) == success,
     Req = #{clientinfo => clientinfo(ClientInfo),
             result => Bool
@@ -287,8 +293,6 @@ stringfy(Term) ->
 %% Acc funcs
 
 %% see exhook.proto
-merge_responsed_bool(Req, #{type := 'IGNORE'}) ->
-    {ok, Req};
 merge_responsed_bool(Req, #{type := Type, value := {bool_result, NewBool}})
   when is_boolean(NewBool) ->
     NReq = Req#{result => NewBool},
@@ -296,18 +300,20 @@ merge_responsed_bool(Req, #{type := Type, value := {bool_result, NewBool}})
         'CONTINUE' -> {ok, NReq};
         'STOP_AND_RETURN' -> {stop, NReq}
     end;
-merge_responsed_bool(Req, Resp) ->
+merge_responsed_bool(_Req, #{type := 'IGNORE'}) ->
+    ignore;
+merge_responsed_bool(_Req, Resp) ->
     ?LOG(warning, "Unknown responsed value ~0p to merge to callback chain", [Resp]),
-    {ok, Req}.
+    ignore.
 
-merge_responsed_message(Req, #{type := 'IGNORE'}) ->
-    {ok, Req};
 merge_responsed_message(Req, #{type := Type, value := {message, NMessage}}) ->
     NReq = Req#{message => NMessage},
     case Type of
         'CONTINUE' -> {ok, NReq};
         'STOP_AND_RETURN' -> {stop, NReq}
     end;
-merge_responsed_message(Req, Resp) ->
+merge_responsed_message(_Req, #{type := 'IGNORE'}) ->
+    ignore;
+merge_responsed_message(_Req, Resp) ->
     ?LOG(warning, "Unknown responsed value ~0p to merge to callback chain", [Resp]),
-    {ok, Req}.
+    ignore.