fix: webhook crash at on_client_connack

This commit is contained in:
Shawn 2023-05-16 13:32:45 +08:00
parent 049a18416e
commit eafa36c3ae
3 changed files with 33 additions and 22 deletions

View File

@ -1,6 +1,6 @@
{application, emqx_web_hook, {application, emqx_web_hook,
[{description, "EMQX WebHook Plugin"}, [{description, "EMQX WebHook Plugin"},
{vsn, "4.3.18"}, % strict semver, bump manually! {vsn, "4.3.19"}, % strict semver, bump manually!
{modules, []}, {modules, []},
{registered, [emqx_web_hook_sup]}, {registered, [emqx_web_hook_sup]},
{applications, [kernel,stdlib,ehttpc]}, {applications, [kernel,stdlib,ehttpc]},

View File

@ -1,13 +1,20 @@
%% -*- mode: erlang -*- %% -*- mode: erlang -*-
%% Unless you know what you are doing, DO NOT edit manually!! %% Unless you know what you are doing, DO NOT edit manually!!
{VSN, {VSN,
[{"4.3.17",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, [{"4.3.18",[{load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]},
{"4.3.16",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.17",
[{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{"4.3.16",
[{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{"4.3.15", {"4.3.15",
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{"4.3.14", {"4.3.14",
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{<<"4\\.3\\.[0-7]">>, {<<"4\\.3\\.[0-7]">>,
[{apply,{application,stop,[emqx_web_hook]}}, [{apply,{application,stop,[emqx_web_hook]}},
@ -31,16 +38,24 @@
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]}, {load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]},
{<<"4\\.3\\.1[2-4]">>, {<<"4\\.3\\.1[2-4]">>,
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{<<".*">>,[]}], {<<".*">>,[]}],
[{"4.3.17",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, [{"4.3.18",[{load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]},
{"4.3.16",[{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {"4.3.17",
[{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{"4.3.16",
[{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{"4.3.15", {"4.3.15",
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{"4.3.14", {"4.3.14",
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{<<"4\\.3\\.[0-7]">>, {<<"4\\.3\\.[0-7]">>,
[{apply,{application,stop,[emqx_web_hook]}}, [{apply,{application,stop,[emqx_web_hook]}},
@ -64,6 +79,7 @@
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]}, {load_module,emqx_web_hook,brutal_purge,soft_purge,[]}]},
{<<"4\\.3\\.1[2-4]">>, {<<"4\\.3\\.1[2-4]">>,
[{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]}, [{load_module,emqx_web_hook,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_app,brutal_purge,soft_purge,[]},
{load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]}, {load_module,emqx_web_hook_actions,brutal_purge,soft_purge,[]}]},
{<<".*">>,[]}]}. {<<".*">>,[]}]}.

View File

@ -91,10 +91,8 @@ on_client_connect(ConnInfo = #{clientid := ClientId, username := Username, peern
, clientid => ClientId , clientid => ClientId
, username => maybe(Username) , username => maybe(Username)
, ipaddress => iolist_to_binary(ntoa(Peerhost)) , ipaddress => iolist_to_binary(ntoa(Peerhost))
, keepalive => maps:get(keepalive, ConnInfo)
, proto_ver => maps:get(proto_ver, ConnInfo)
}, },
send_http_request(ClientId, Params). send_http_request(ClientId, add_optional_conn_fields(Params, ConnInfo)).
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Client connack %% Client connack
@ -107,12 +105,9 @@ on_client_connack(ConnInfo = #{clientid := ClientId, username := Username, peern
, clientid => ClientId , clientid => ClientId
, username => maybe(Username) , username => maybe(Username)
, ipaddress => iolist_to_binary(ntoa(Peerhost)) , ipaddress => iolist_to_binary(ntoa(Peerhost))
, keepalive => maps:get(keepalive, ConnInfo)
, proto_ver => maps:get(proto_ver, ConnInfo)
, connected_at => maps:get(connected_at, ConnInfo)
, conn_ack => Rc , conn_ack => Rc
}, },
send_http_request(ClientId, Params). send_http_request(ClientId, add_optional_conn_fields(Params, ConnInfo)).
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Client connected %% Client connected
@ -125,11 +120,8 @@ on_client_connected(#{clientid := ClientId, username := Username, peerhost := Pe
, clientid => ClientId , clientid => ClientId
, username => maybe(Username) , username => maybe(Username)
, ipaddress => iolist_to_binary(ntoa(Peerhost)) , ipaddress => iolist_to_binary(ntoa(Peerhost))
, keepalive => maps:get(keepalive, ConnInfo)
, proto_ver => maps:get(proto_ver, ConnInfo)
, connected_at => maps:get(connected_at, ConnInfo)
}, },
send_http_request(ClientId, Params). send_http_request(ClientId, add_optional_conn_fields(Params, ConnInfo)).
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Client disconnected %% Client disconnected
@ -387,3 +379,6 @@ stringfy(Term) ->
maybe(undefined) -> null; maybe(undefined) -> null;
maybe(Str) -> Str. maybe(Str) -> Str.
add_optional_conn_fields(Fields, ConnInfo) ->
maps:merge(Fields, maps:with([keepalive, proto_ver, connected_at], ConnInfo)).