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

Put peername into messsage headers (#2390)

* Put peername into the message.heaers
JianBo He 6 лет назад
Родитель
Сommit
aad2d7378e
2 измененных файлов с 10 добавлено и 4 удалено
  1. 3 2
      src/emqx_packet.erl
  2. 7 2
      test/emqx_packet_SUITE.erl

+ 3 - 2
src/emqx_packet.erl

@@ -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}) ->

+ 7 - 2
test/emqx_packet_SUITE.erl

@@ -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.