Put peername into messsage headers (#2390)

* Put peername into the message.heaers
This commit is contained in:
JianBo He 2019-04-04 13:41:03 +08:00 committed by turtleDeng
parent 287c5582a9
commit aad2d7378e
2 changed files with 10 additions and 4 deletions

View File

@ -140,7 +140,7 @@ publish_props(Headers) ->
%% @doc Message from Packet
-spec(to_message(emqx_types:credentials(), emqx_mqtt_types:packet())
-> emqx_types:message()).
to_message(#{client_id := ClientId, username := Username},
to_message(#{client_id := ClientId, username := Username, peername := Peername},
#mqtt_packet{header = #mqtt_packet_header{type = ?PUBLISH,
retain = Retain,
qos = QoS,
@ -150,7 +150,8 @@ to_message(#{client_id := ClientId, username := Username},
payload = Payload}) ->
Msg = emqx_message:make(ClientId, QoS, Topic, Payload),
Msg#message{flags = #{dup => Dup, retain => Retain},
headers = merge_props(#{username => Username}, Props)}.
headers = merge_props(#{username => Username,
peername => Peername}, Props)}.
-spec(will_msg(#mqtt_packet_connect{}) -> emqx_types:message()).
will_msg(#mqtt_packet_connect{will_flag = false}) ->

View File

@ -100,8 +100,13 @@ packet_message(_) ->
Msg = emqx_message:make(<<"clientid">>, ?QOS_0, <<"topic">>, <<"payload">>),
Msg2 = emqx_message:set_flag(retain, false, Msg),
Pkt = emqx_packet:from_message(10, Msg2),
Msg3 = emqx_message:set_header(username, "test", Msg2),
Msg4 = emqx_packet:to_message(#{client_id => <<"clientid">>, username => "test"}, Pkt),
Msg3 = emqx_message:set_header(
peername, {{127,0,0,1}, 9527},
emqx_message:set_header(username, "test", Msg2)
),
Msg4 = emqx_packet:to_message(#{client_id => <<"clientid">>,
username => "test",
peername => {{127,0,0,1}, 9527}}, Pkt),
Msg5 = Msg4#message{timestamp = Msg3#message.timestamp, id = Msg3#message.id},
Msg5 = Msg3.