feat: add `peername` to rule events that already have `peerhost`
Fixes https://emqx.atlassian.net/browse/EMQX-12342
This commit is contained in:
parent
d1c218303d
commit
7ca5205f3f
|
@ -235,7 +235,7 @@ caps(#channel{clientinfo = #{zone := Zone}}) ->
|
||||||
-spec init(emqx_types:conninfo(), opts()) -> channel().
|
-spec init(emqx_types:conninfo(), opts()) -> channel().
|
||||||
init(
|
init(
|
||||||
ConnInfo = #{
|
ConnInfo = #{
|
||||||
peername := {PeerHost, PeerPort},
|
peername := {PeerHost, PeerPort} = PeerName,
|
||||||
sockname := {_Host, SockPort}
|
sockname := {_Host, SockPort}
|
||||||
},
|
},
|
||||||
#{
|
#{
|
||||||
|
@ -259,6 +259,9 @@ init(
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
protocol => Protocol,
|
protocol => Protocol,
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
%% We copy peername to clientinfo because some event contexts only have access
|
||||||
|
%% to client info (e.g.: authn/authz).
|
||||||
|
peername => PeerName,
|
||||||
peerport => PeerPort,
|
peerport => PeerPort,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
clientid => undefined,
|
clientid => undefined,
|
||||||
|
|
|
@ -308,6 +308,7 @@ clientinfo(OldClientInfo) ->
|
||||||
zone,
|
zone,
|
||||||
protocol,
|
protocol,
|
||||||
peerhost,
|
peerhost,
|
||||||
|
peername,
|
||||||
sockport,
|
sockport,
|
||||||
clientid,
|
clientid,
|
||||||
username,
|
username,
|
||||||
|
|
|
@ -120,7 +120,7 @@ stats(#channel{session = Session}) ->
|
||||||
-spec init(map(), map()) -> channel().
|
-spec init(map(), map()) -> channel().
|
||||||
init(
|
init(
|
||||||
ConnInfo = #{
|
ConnInfo = #{
|
||||||
peername := {PeerHost, _},
|
peername := {PeerHost, _} = PeerName,
|
||||||
sockname := {_, SockPort}
|
sockname := {_, SockPort}
|
||||||
},
|
},
|
||||||
#{ctx := Ctx} = Config
|
#{ctx := Ctx} = Config
|
||||||
|
@ -140,6 +140,7 @@ init(
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
protocol => 'coap',
|
protocol => 'coap',
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
peername => PeerName,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
clientid => emqx_guid:to_base62(emqx_guid:gen()),
|
clientid => emqx_guid:to_base62(emqx_guid:gen()),
|
||||||
username => undefined,
|
username => undefined,
|
||||||
|
|
|
@ -802,7 +802,7 @@ default_conninfo(ConnInfo) ->
|
||||||
}.
|
}.
|
||||||
|
|
||||||
default_clientinfo(#{
|
default_clientinfo(#{
|
||||||
peername := {PeerHost, _},
|
peername := {PeerHost, _} = PeerName,
|
||||||
sockname := {_, SockPort},
|
sockname := {_, SockPort},
|
||||||
clientid := ClientId
|
clientid := ClientId
|
||||||
}) ->
|
}) ->
|
||||||
|
@ -810,6 +810,7 @@ default_clientinfo(#{
|
||||||
zone => default,
|
zone => default,
|
||||||
protocol => exproto,
|
protocol => exproto,
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
peername => PeerName,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
clientid => ClientId,
|
clientid => ClientId,
|
||||||
username => undefined,
|
username => undefined,
|
||||||
|
|
|
@ -138,7 +138,7 @@ set_conn_state(ConnState, Channel) ->
|
||||||
|
|
||||||
init(
|
init(
|
||||||
ConnInfo = #{
|
ConnInfo = #{
|
||||||
peername := {PeerHost, _Port},
|
peername := {PeerHost, _Port} = PeerName,
|
||||||
sockname := {_Host, SockPort}
|
sockname := {_Host, SockPort}
|
||||||
},
|
},
|
||||||
Options
|
Options
|
||||||
|
@ -160,6 +160,7 @@ init(
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
protocol => gbt32960,
|
protocol => gbt32960,
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
peername => PeerName,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
clientid => undefined,
|
clientid => undefined,
|
||||||
username => undefined,
|
username => undefined,
|
||||||
|
|
|
@ -147,7 +147,7 @@ stats(#channel{inflight = Inflight, mqueue = Queue}) ->
|
||||||
-spec init(emqx_types:conninfo(), map()) -> channel().
|
-spec init(emqx_types:conninfo(), map()) -> channel().
|
||||||
init(
|
init(
|
||||||
ConnInfo = #{
|
ConnInfo = #{
|
||||||
peername := {PeerHost, _Port},
|
peername := {PeerHost, _Port} = PeerName,
|
||||||
sockname := {_Host, SockPort}
|
sockname := {_Host, SockPort}
|
||||||
},
|
},
|
||||||
Options = #{
|
Options = #{
|
||||||
|
@ -171,6 +171,7 @@ init(
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
protocol => jt808,
|
protocol => jt808,
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
peername => PeerName,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
clientid => undefined,
|
clientid => undefined,
|
||||||
username => undefined,
|
username => undefined,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
%% -*- mode: erlang -*-
|
%% -*- mode: erlang -*-
|
||||||
{application, emqx_gateway_lwm2m, [
|
{application, emqx_gateway_lwm2m, [
|
||||||
{description, "LwM2M Gateway"},
|
{description, "LwM2M Gateway"},
|
||||||
{vsn, "0.1.6"},
|
{vsn, "0.1.7"},
|
||||||
{registered, []},
|
{registered, []},
|
||||||
{applications, [kernel, stdlib, emqx, emqx_gateway, emqx_gateway_coap, xmerl]},
|
{applications, [kernel, stdlib, emqx, emqx_gateway, emqx_gateway_coap, xmerl]},
|
||||||
{env, []},
|
{env, []},
|
||||||
|
|
|
@ -119,7 +119,7 @@ stats(#channel{session = Session}) ->
|
||||||
|
|
||||||
init(
|
init(
|
||||||
ConnInfo = #{
|
ConnInfo = #{
|
||||||
peername := {PeerHost, _},
|
peername := {PeerHost, _} = PeerName,
|
||||||
sockname := {_, SockPort}
|
sockname := {_, SockPort}
|
||||||
},
|
},
|
||||||
#{ctx := Ctx} = Config
|
#{ctx := Ctx} = Config
|
||||||
|
@ -139,6 +139,7 @@ init(
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
protocol => lwm2m,
|
protocol => lwm2m,
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
peername => PeerName,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
username => undefined,
|
username => undefined,
|
||||||
clientid => undefined,
|
clientid => undefined,
|
||||||
|
|
|
@ -130,7 +130,7 @@
|
||||||
%% @doc Init protocol
|
%% @doc Init protocol
|
||||||
init(
|
init(
|
||||||
ConnInfo = #{
|
ConnInfo = #{
|
||||||
peername := {PeerHost, _},
|
peername := {PeerHost, _} = PeerName,
|
||||||
sockname := {_, SockPort}
|
sockname := {_, SockPort}
|
||||||
},
|
},
|
||||||
Option
|
Option
|
||||||
|
@ -152,6 +152,7 @@ init(
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
protocol => 'mqtt-sn',
|
protocol => 'mqtt-sn',
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
peername => PeerName,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
clientid => undefined,
|
clientid => undefined,
|
||||||
username => undefined,
|
username => undefined,
|
||||||
|
|
|
@ -209,7 +209,7 @@ stats(#channel{mqueue = MQueue}) ->
|
||||||
-spec init(emqx_types:conninfo(), map()) -> channel().
|
-spec init(emqx_types:conninfo(), map()) -> channel().
|
||||||
init(
|
init(
|
||||||
ConnInfo = #{
|
ConnInfo = #{
|
||||||
peername := {PeerHost, _Port},
|
peername := {PeerHost, _Port} = PeerName,
|
||||||
sockname := {_Host, SockPort}
|
sockname := {_Host, SockPort}
|
||||||
},
|
},
|
||||||
Options
|
Options
|
||||||
|
@ -230,6 +230,7 @@ init(
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
protocol => ocpp,
|
protocol => ocpp,
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
peername => PeerName,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
clientid => undefined,
|
clientid => undefined,
|
||||||
username => undefined,
|
username => undefined,
|
||||||
|
@ -325,9 +326,9 @@ enrich_client(
|
||||||
|
|
||||||
set_log_meta(#channel{
|
set_log_meta(#channel{
|
||||||
clientinfo = #{clientid := ClientId},
|
clientinfo = #{clientid := ClientId},
|
||||||
conninfo = #{peername := Peername}
|
conninfo = #{peername := PeerName}
|
||||||
}) ->
|
}) ->
|
||||||
emqx_logger:set_metadata_peername(esockd:format(Peername)),
|
emqx_logger:set_metadata_peername(esockd:format(PeerName)),
|
||||||
emqx_logger:set_metadata_clientid(ClientId).
|
emqx_logger:set_metadata_clientid(ClientId).
|
||||||
|
|
||||||
run_conn_hooks(_UserInfo, Channel = #channel{conninfo = ConnInfo}) ->
|
run_conn_hooks(_UserInfo, Channel = #channel{conninfo = ConnInfo}) ->
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
%% @doc Init protocol
|
%% @doc Init protocol
|
||||||
init(
|
init(
|
||||||
ConnInfo = #{
|
ConnInfo = #{
|
||||||
peername := {PeerHost, _},
|
peername := {PeerHost, _} = PeerName,
|
||||||
sockname := {_, SockPort}
|
sockname := {_, SockPort}
|
||||||
},
|
},
|
||||||
Option
|
Option
|
||||||
|
@ -137,6 +137,7 @@ init(
|
||||||
listener => ListenerId,
|
listener => ListenerId,
|
||||||
protocol => stomp,
|
protocol => stomp,
|
||||||
peerhost => PeerHost,
|
peerhost => PeerHost,
|
||||||
|
peername => PeerName,
|
||||||
sockport => SockPort,
|
sockport => SockPort,
|
||||||
clientid => undefined,
|
clientid => undefined,
|
||||||
username => undefined,
|
username => undefined,
|
||||||
|
|
|
@ -329,6 +329,7 @@ eventmsg_publish(
|
||||||
username => emqx_message:get_header(username, Message, undefined),
|
username => emqx_message:get_header(username, Message, undefined),
|
||||||
payload => Payload,
|
payload => Payload,
|
||||||
peerhost => ntoa(emqx_message:get_header(peerhost, Message, undefined)),
|
peerhost => ntoa(emqx_message:get_header(peerhost, Message, undefined)),
|
||||||
|
peername => ntoa(emqx_message:get_header(peername, Message, undefined)),
|
||||||
topic => Topic,
|
topic => Topic,
|
||||||
qos => QoS,
|
qos => QoS,
|
||||||
flags => Flags,
|
flags => Flags,
|
||||||
|
@ -446,7 +447,8 @@ eventmsg_check_authz_complete(
|
||||||
_ClientInfo = #{
|
_ClientInfo = #{
|
||||||
clientid := ClientId,
|
clientid := ClientId,
|
||||||
username := Username,
|
username := Username,
|
||||||
peerhost := PeerHost
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName
|
||||||
},
|
},
|
||||||
PubSub,
|
PubSub,
|
||||||
Topic,
|
Topic,
|
||||||
|
@ -458,6 +460,7 @@ eventmsg_check_authz_complete(
|
||||||
#{
|
#{
|
||||||
clientid => ClientId,
|
clientid => ClientId,
|
||||||
username => Username,
|
username => Username,
|
||||||
|
peername => ntoa(PeerName),
|
||||||
peerhost => ntoa(PeerHost),
|
peerhost => ntoa(PeerHost),
|
||||||
topic => Topic,
|
topic => Topic,
|
||||||
action => PubSub,
|
action => PubSub,
|
||||||
|
@ -471,8 +474,7 @@ eventmsg_check_authn_complete(
|
||||||
_ClientInfo = #{
|
_ClientInfo = #{
|
||||||
clientid := ClientId,
|
clientid := ClientId,
|
||||||
username := Username,
|
username := Username,
|
||||||
peerhost := PeerHost,
|
peername := PeerName
|
||||||
peerport := PeerPort
|
|
||||||
},
|
},
|
||||||
Result
|
Result
|
||||||
) ->
|
) ->
|
||||||
|
@ -488,7 +490,7 @@ eventmsg_check_authn_complete(
|
||||||
#{
|
#{
|
||||||
clientid => ClientId,
|
clientid => ClientId,
|
||||||
username => Username,
|
username => Username,
|
||||||
peername => ntoa({PeerHost, PeerPort}),
|
peername => ntoa(PeerName),
|
||||||
reason_code => force_to_bin(Reason),
|
reason_code => force_to_bin(Reason),
|
||||||
is_anonymous => IsAnonymous,
|
is_anonymous => IsAnonymous,
|
||||||
is_superuser => IsSuperuser
|
is_superuser => IsSuperuser
|
||||||
|
@ -501,7 +503,8 @@ eventmsg_sub_or_unsub(
|
||||||
_ClientInfo = #{
|
_ClientInfo = #{
|
||||||
clientid := ClientId,
|
clientid := ClientId,
|
||||||
username := Username,
|
username := Username,
|
||||||
peerhost := PeerHost
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName
|
||||||
},
|
},
|
||||||
Topic,
|
Topic,
|
||||||
SubOpts = #{qos := QoS}
|
SubOpts = #{qos := QoS}
|
||||||
|
@ -513,6 +516,7 @@ eventmsg_sub_or_unsub(
|
||||||
clientid => ClientId,
|
clientid => ClientId,
|
||||||
username => Username,
|
username => Username,
|
||||||
peerhost => ntoa(PeerHost),
|
peerhost => ntoa(PeerHost),
|
||||||
|
peername => ntoa(PeerName),
|
||||||
PropKey => printable_maps(maps:get(PropKey, SubOpts, #{})),
|
PropKey => printable_maps(maps:get(PropKey, SubOpts, #{})),
|
||||||
topic => Topic,
|
topic => Topic,
|
||||||
qos => QoS
|
qos => QoS
|
||||||
|
@ -542,6 +546,7 @@ eventmsg_dropped(
|
||||||
username => emqx_message:get_header(username, Message, undefined),
|
username => emqx_message:get_header(username, Message, undefined),
|
||||||
payload => Payload,
|
payload => Payload,
|
||||||
peerhost => ntoa(emqx_message:get_header(peerhost, Message, undefined)),
|
peerhost => ntoa(emqx_message:get_header(peerhost, Message, undefined)),
|
||||||
|
peername => ntoa(emqx_message:get_header(peername, Message, undefined)),
|
||||||
topic => Topic,
|
topic => Topic,
|
||||||
qos => QoS,
|
qos => QoS,
|
||||||
flags => Flags,
|
flags => Flags,
|
||||||
|
@ -606,6 +611,7 @@ eventmsg_validation_failed(
|
||||||
username => emqx_message:get_header(username, Message, undefined),
|
username => emqx_message:get_header(username, Message, undefined),
|
||||||
payload => Payload,
|
payload => Payload,
|
||||||
peerhost => ntoa(emqx_message:get_header(peerhost, Message, undefined)),
|
peerhost => ntoa(emqx_message:get_header(peerhost, Message, undefined)),
|
||||||
|
peername => ntoa(emqx_message:get_header(peername, Message, undefined)),
|
||||||
topic => Topic,
|
topic => Topic,
|
||||||
qos => QoS,
|
qos => QoS,
|
||||||
flags => Flags,
|
flags => Flags,
|
||||||
|
@ -618,6 +624,7 @@ eventmsg_validation_failed(
|
||||||
eventmsg_delivered(
|
eventmsg_delivered(
|
||||||
_ClientInfo = #{
|
_ClientInfo = #{
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
clientid := ReceiverCId,
|
clientid := ReceiverCId,
|
||||||
username := ReceiverUsername
|
username := ReceiverUsername
|
||||||
},
|
},
|
||||||
|
@ -642,6 +649,7 @@ eventmsg_delivered(
|
||||||
username => ReceiverUsername,
|
username => ReceiverUsername,
|
||||||
payload => Payload,
|
payload => Payload,
|
||||||
peerhost => ntoa(PeerHost),
|
peerhost => ntoa(PeerHost),
|
||||||
|
peername => ntoa(PeerName),
|
||||||
topic => Topic,
|
topic => Topic,
|
||||||
qos => QoS,
|
qos => QoS,
|
||||||
flags => Flags,
|
flags => Flags,
|
||||||
|
@ -654,6 +662,7 @@ eventmsg_delivered(
|
||||||
eventmsg_acked(
|
eventmsg_acked(
|
||||||
_ClientInfo = #{
|
_ClientInfo = #{
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
clientid := ReceiverCId,
|
clientid := ReceiverCId,
|
||||||
username := ReceiverUsername
|
username := ReceiverUsername
|
||||||
},
|
},
|
||||||
|
@ -678,6 +687,7 @@ eventmsg_acked(
|
||||||
username => ReceiverUsername,
|
username => ReceiverUsername,
|
||||||
payload => Payload,
|
payload => Payload,
|
||||||
peerhost => ntoa(PeerHost),
|
peerhost => ntoa(PeerHost),
|
||||||
|
peername => ntoa(PeerName),
|
||||||
topic => Topic,
|
topic => Topic,
|
||||||
qos => QoS,
|
qos => QoS,
|
||||||
flags => Flags,
|
flags => Flags,
|
||||||
|
@ -691,6 +701,7 @@ eventmsg_acked(
|
||||||
eventmsg_delivery_dropped(
|
eventmsg_delivery_dropped(
|
||||||
_ClientInfo = #{
|
_ClientInfo = #{
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
clientid := ReceiverCId,
|
clientid := ReceiverCId,
|
||||||
username := ReceiverUsername
|
username := ReceiverUsername
|
||||||
},
|
},
|
||||||
|
@ -717,6 +728,7 @@ eventmsg_delivery_dropped(
|
||||||
username => ReceiverUsername,
|
username => ReceiverUsername,
|
||||||
payload => Payload,
|
payload => Payload,
|
||||||
peerhost => ntoa(PeerHost),
|
peerhost => ntoa(PeerHost),
|
||||||
|
peername => ntoa(PeerName),
|
||||||
topic => Topic,
|
topic => Topic,
|
||||||
qos => QoS,
|
qos => QoS,
|
||||||
flags => Flags,
|
flags => Flags,
|
||||||
|
@ -1009,6 +1021,7 @@ columns_with_exam('message.publish') ->
|
||||||
{<<"username">>, <<"u_emqx">>},
|
{<<"username">>, <<"u_emqx">>},
|
||||||
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
||||||
{<<"peerhost">>, <<"192.168.0.10">>},
|
{<<"peerhost">>, <<"192.168.0.10">>},
|
||||||
|
{<<"peername">>, <<"192.168.0.10:32781">>},
|
||||||
{<<"topic">>, <<"t/a">>},
|
{<<"topic">>, <<"t/a">>},
|
||||||
{<<"qos">>, 1},
|
{<<"qos">>, 1},
|
||||||
{<<"flags">>, #{}},
|
{<<"flags">>, #{}},
|
||||||
|
@ -1031,6 +1044,7 @@ columns_with_exam('message.dropped') ->
|
||||||
{<<"username">>, <<"u_emqx">>},
|
{<<"username">>, <<"u_emqx">>},
|
||||||
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
||||||
{<<"peerhost">>, <<"192.168.0.10">>},
|
{<<"peerhost">>, <<"192.168.0.10">>},
|
||||||
|
{<<"peername">>, <<"192.168.0.10:32781">>},
|
||||||
{<<"topic">>, <<"t/a">>},
|
{<<"topic">>, <<"t/a">>},
|
||||||
{<<"qos">>, 1},
|
{<<"qos">>, 1},
|
||||||
{<<"flags">>, #{}},
|
{<<"flags">>, #{}},
|
||||||
|
@ -1048,6 +1062,7 @@ columns_with_exam('schema.validation_failed') ->
|
||||||
{<<"username">>, <<"u_emqx">>},
|
{<<"username">>, <<"u_emqx">>},
|
||||||
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
||||||
{<<"peerhost">>, <<"192.168.0.10">>},
|
{<<"peerhost">>, <<"192.168.0.10">>},
|
||||||
|
{<<"peername">>, <<"192.168.0.10:32781">>},
|
||||||
{<<"topic">>, <<"t/a">>},
|
{<<"topic">>, <<"t/a">>},
|
||||||
{<<"qos">>, 1},
|
{<<"qos">>, 1},
|
||||||
{<<"flags">>, #{}},
|
{<<"flags">>, #{}},
|
||||||
|
@ -1084,6 +1099,7 @@ columns_with_exam('delivery.dropped') ->
|
||||||
{<<"username">>, <<"u_emqx_2">>},
|
{<<"username">>, <<"u_emqx_2">>},
|
||||||
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
||||||
{<<"peerhost">>, <<"192.168.0.10">>},
|
{<<"peerhost">>, <<"192.168.0.10">>},
|
||||||
|
{<<"peername">>, <<"192.168.0.10:32781">>},
|
||||||
{<<"topic">>, <<"t/a">>},
|
{<<"topic">>, <<"t/a">>},
|
||||||
{<<"qos">>, 1},
|
{<<"qos">>, 1},
|
||||||
{<<"flags">>, #{}},
|
{<<"flags">>, #{}},
|
||||||
|
@ -1150,6 +1166,7 @@ columns_with_exam('client.check_authz_complete') ->
|
||||||
{<<"clientid">>, <<"c_emqx">>},
|
{<<"clientid">>, <<"c_emqx">>},
|
||||||
{<<"username">>, <<"u_emqx">>},
|
{<<"username">>, <<"u_emqx">>},
|
||||||
{<<"peerhost">>, <<"192.168.0.10">>},
|
{<<"peerhost">>, <<"192.168.0.10">>},
|
||||||
|
{<<"peername">>, <<"192.168.0.10:32781">>},
|
||||||
{<<"topic">>, <<"t/a">>},
|
{<<"topic">>, <<"t/a">>},
|
||||||
{<<"action">>, <<"publish">>},
|
{<<"action">>, <<"publish">>},
|
||||||
{<<"authz_source">>, <<"cache">>},
|
{<<"authz_source">>, <<"cache">>},
|
||||||
|
@ -1197,6 +1214,7 @@ columns_message_sub_unsub(EventName) ->
|
||||||
{<<"clientid">>, <<"c_emqx">>},
|
{<<"clientid">>, <<"c_emqx">>},
|
||||||
{<<"username">>, <<"u_emqx">>},
|
{<<"username">>, <<"u_emqx">>},
|
||||||
{<<"peerhost">>, <<"192.168.0.10">>},
|
{<<"peerhost">>, <<"192.168.0.10">>},
|
||||||
|
{<<"peername">>, <<"192.168.0.10:32781">>},
|
||||||
{<<"topic">>, <<"t/a">>},
|
{<<"topic">>, <<"t/a">>},
|
||||||
{<<"qos">>, 1},
|
{<<"qos">>, 1},
|
||||||
{<<"timestamp">>, erlang:system_time(millisecond)},
|
{<<"timestamp">>, erlang:system_time(millisecond)},
|
||||||
|
@ -1213,6 +1231,7 @@ columns_message_ack_delivered(EventName) ->
|
||||||
{<<"username">>, <<"u_emqx_2">>},
|
{<<"username">>, <<"u_emqx_2">>},
|
||||||
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
{<<"payload">>, <<"{\"msg\": \"hello\"}">>},
|
||||||
{<<"peerhost">>, <<"192.168.0.10">>},
|
{<<"peerhost">>, <<"192.168.0.10">>},
|
||||||
|
{<<"peername">>, <<"192.168.0.10:32781">>},
|
||||||
{<<"topic">>, <<"t/a">>},
|
{<<"topic">>, <<"t/a">>},
|
||||||
{<<"qos">>, 1},
|
{<<"qos">>, 1},
|
||||||
{<<"flags">>, #{}},
|
{<<"flags">>, #{}},
|
||||||
|
|
|
@ -3920,6 +3920,7 @@ verify_event_fields('message.publish', Fields) ->
|
||||||
username := Username,
|
username := Username,
|
||||||
payload := Payload,
|
payload := Payload,
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
topic := Topic,
|
topic := Topic,
|
||||||
qos := QoS,
|
qos := QoS,
|
||||||
flags := Flags,
|
flags := Flags,
|
||||||
|
@ -3934,6 +3935,7 @@ verify_event_fields('message.publish', Fields) ->
|
||||||
?assertEqual(<<"c_event">>, ClientId),
|
?assertEqual(<<"c_event">>, ClientId),
|
||||||
?assertEqual(<<"u_event">>, Username),
|
?assertEqual(<<"u_event">>, Username),
|
||||||
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
||||||
|
verify_peername(PeerName),
|
||||||
verify_ipaddr(PeerHost),
|
verify_ipaddr(PeerHost),
|
||||||
?assertEqual(<<"t1">>, Topic),
|
?assertEqual(<<"t1">>, Topic),
|
||||||
?assertEqual(1, QoS),
|
?assertEqual(1, QoS),
|
||||||
|
@ -4008,6 +4010,7 @@ verify_event_fields(SubUnsub, Fields) when
|
||||||
clientid := ClientId,
|
clientid := ClientId,
|
||||||
username := Username,
|
username := Username,
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
topic := Topic,
|
topic := Topic,
|
||||||
qos := QoS,
|
qos := QoS,
|
||||||
timestamp := Timestamp
|
timestamp := Timestamp
|
||||||
|
@ -4017,6 +4020,7 @@ verify_event_fields(SubUnsub, Fields) when
|
||||||
?assert(is_atom(reason)),
|
?assert(is_atom(reason)),
|
||||||
?assertEqual(<<"c_event2">>, ClientId),
|
?assertEqual(<<"c_event2">>, ClientId),
|
||||||
?assertEqual(<<"u_event2">>, Username),
|
?assertEqual(<<"u_event2">>, Username),
|
||||||
|
verify_peername(PeerName),
|
||||||
verify_ipaddr(PeerHost),
|
verify_ipaddr(PeerHost),
|
||||||
?assertEqual(<<"t1">>, Topic),
|
?assertEqual(<<"t1">>, Topic),
|
||||||
?assertEqual(1, QoS),
|
?assertEqual(1, QoS),
|
||||||
|
@ -4043,6 +4047,7 @@ verify_event_fields('delivery.dropped', Fields) ->
|
||||||
node := Node,
|
node := Node,
|
||||||
payload := Payload,
|
payload := Payload,
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
pub_props := Properties,
|
pub_props := Properties,
|
||||||
publish_received_at := EventAt,
|
publish_received_at := EventAt,
|
||||||
qos := QoS,
|
qos := QoS,
|
||||||
|
@ -4062,6 +4067,7 @@ verify_event_fields('delivery.dropped', Fields) ->
|
||||||
?assertEqual(<<"c_event">>, FromClientId),
|
?assertEqual(<<"c_event">>, FromClientId),
|
||||||
?assertEqual(<<"u_event">>, FromUsername),
|
?assertEqual(<<"u_event">>, FromUsername),
|
||||||
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
||||||
|
verify_peername(PeerName),
|
||||||
verify_ipaddr(PeerHost),
|
verify_ipaddr(PeerHost),
|
||||||
?assertEqual(<<"t1">>, Topic),
|
?assertEqual(<<"t1">>, Topic),
|
||||||
?assertEqual(1, QoS),
|
?assertEqual(1, QoS),
|
||||||
|
@ -4078,6 +4084,7 @@ verify_event_fields('message.dropped', Fields) ->
|
||||||
username := Username,
|
username := Username,
|
||||||
payload := Payload,
|
payload := Payload,
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
topic := Topic,
|
topic := Topic,
|
||||||
qos := QoS,
|
qos := QoS,
|
||||||
flags := Flags,
|
flags := Flags,
|
||||||
|
@ -4093,6 +4100,7 @@ verify_event_fields('message.dropped', Fields) ->
|
||||||
?assertEqual(<<"c_event">>, ClientId),
|
?assertEqual(<<"c_event">>, ClientId),
|
||||||
?assertEqual(<<"u_event">>, Username),
|
?assertEqual(<<"u_event">>, Username),
|
||||||
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
||||||
|
verify_peername(PeerName),
|
||||||
verify_ipaddr(PeerHost),
|
verify_ipaddr(PeerHost),
|
||||||
?assertEqual(<<"t1">>, Topic),
|
?assertEqual(<<"t1">>, Topic),
|
||||||
?assertEqual(1, QoS),
|
?assertEqual(1, QoS),
|
||||||
|
@ -4110,6 +4118,7 @@ verify_event_fields('message.delivered', Fields) ->
|
||||||
from_username := FromUsername,
|
from_username := FromUsername,
|
||||||
payload := Payload,
|
payload := Payload,
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
topic := Topic,
|
topic := Topic,
|
||||||
qos := QoS,
|
qos := QoS,
|
||||||
flags := Flags,
|
flags := Flags,
|
||||||
|
@ -4126,6 +4135,7 @@ verify_event_fields('message.delivered', Fields) ->
|
||||||
?assertEqual(<<"c_event">>, FromClientId),
|
?assertEqual(<<"c_event">>, FromClientId),
|
||||||
?assertEqual(<<"u_event">>, FromUsername),
|
?assertEqual(<<"u_event">>, FromUsername),
|
||||||
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
||||||
|
verify_peername(PeerName),
|
||||||
verify_ipaddr(PeerHost),
|
verify_ipaddr(PeerHost),
|
||||||
?assertEqual(<<"t1">>, Topic),
|
?assertEqual(<<"t1">>, Topic),
|
||||||
?assertEqual(1, QoS),
|
?assertEqual(1, QoS),
|
||||||
|
@ -4143,6 +4153,7 @@ verify_event_fields('message.acked', Fields) ->
|
||||||
from_username := FromUsername,
|
from_username := FromUsername,
|
||||||
payload := Payload,
|
payload := Payload,
|
||||||
peerhost := PeerHost,
|
peerhost := PeerHost,
|
||||||
|
peername := PeerName,
|
||||||
topic := Topic,
|
topic := Topic,
|
||||||
qos := QoS,
|
qos := QoS,
|
||||||
flags := Flags,
|
flags := Flags,
|
||||||
|
@ -4160,6 +4171,7 @@ verify_event_fields('message.acked', Fields) ->
|
||||||
?assertEqual(<<"c_event">>, FromClientId),
|
?assertEqual(<<"c_event">>, FromClientId),
|
||||||
?assertEqual(<<"u_event">>, FromUsername),
|
?assertEqual(<<"u_event">>, FromUsername),
|
||||||
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
?assertEqual(<<"{\"id\": 1, \"name\": \"ha\"}">>, Payload),
|
||||||
|
verify_peername(PeerName),
|
||||||
verify_ipaddr(PeerHost),
|
verify_ipaddr(PeerHost),
|
||||||
?assertEqual(<<"t1">>, Topic),
|
?assertEqual(<<"t1">>, Topic),
|
||||||
?assertEqual(1, QoS),
|
?assertEqual(1, QoS),
|
||||||
|
@ -4203,6 +4215,7 @@ verify_event_fields('client.check_authz_complete', Fields) ->
|
||||||
clientid := ClientId,
|
clientid := ClientId,
|
||||||
action := Action,
|
action := Action,
|
||||||
result := Result,
|
result := Result,
|
||||||
|
peername := PeerName,
|
||||||
topic := Topic,
|
topic := Topic,
|
||||||
authz_source := AuthzSource,
|
authz_source := AuthzSource,
|
||||||
username := Username
|
username := Username
|
||||||
|
@ -4210,6 +4223,7 @@ verify_event_fields('client.check_authz_complete', Fields) ->
|
||||||
?assertEqual(<<"t1">>, Topic),
|
?assertEqual(<<"t1">>, Topic),
|
||||||
?assert(lists:member(Action, [subscribe, publish])),
|
?assert(lists:member(Action, [subscribe, publish])),
|
||||||
?assert(lists:member(Result, [allow, deny])),
|
?assert(lists:member(Result, [allow, deny])),
|
||||||
|
verify_peername(PeerName),
|
||||||
?assert(
|
?assert(
|
||||||
lists:member(AuthzSource, [
|
lists:member(AuthzSource, [
|
||||||
cache,
|
cache,
|
||||||
|
@ -4228,10 +4242,12 @@ verify_event_fields('client.check_authz_complete', Fields) ->
|
||||||
verify_event_fields('client.check_authn_complete', Fields) ->
|
verify_event_fields('client.check_authn_complete', Fields) ->
|
||||||
#{
|
#{
|
||||||
clientid := ClientId,
|
clientid := ClientId,
|
||||||
|
peername := PeerName,
|
||||||
username := Username,
|
username := Username,
|
||||||
is_anonymous := IsAnonymous,
|
is_anonymous := IsAnonymous,
|
||||||
is_superuser := IsSuperuser
|
is_superuser := IsSuperuser
|
||||||
} = Fields,
|
} = Fields,
|
||||||
|
verify_peername(PeerName),
|
||||||
?assert(lists:member(ClientId, [<<"c_event">>, <<"c_event2">>])),
|
?assert(lists:member(ClientId, [<<"c_event">>, <<"c_event2">>])),
|
||||||
?assert(lists:member(Username, [<<"u_event">>, <<"u_event2">>])),
|
?assert(lists:member(Username, [<<"u_event">>, <<"u_event2">>])),
|
||||||
?assert(erlang:is_boolean(IsAnonymous)),
|
?assert(erlang:is_boolean(IsAnonymous)),
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Added the `peername` field to all rule engine events that already contained the `peerhost` field. `peername` is a string and has the `IP:PORT` format.
|
Loading…
Reference in New Issue