diff --git a/include/emqttd.hrl b/include/emqttd.hrl index 4fd6749f0..364c9a28b 100644 --- a/include/emqttd.hrl +++ b/include/emqttd.hrl @@ -85,7 +85,7 @@ -type(mqtt_pktid() :: 1..16#ffff | undefined). -record(mqtt_message, { - msgid :: mqtt_msgid(), %% Global unique message ID + id :: mqtt_msgid(), %% Global unique message ID pktid :: mqtt_pktid(), %% PacketId from :: {binary(), undefined | binary()}, %% ClientId and Username topic :: binary(), %% Topic that the message is published to @@ -96,7 +96,7 @@ sys = false :: boolean(), %% $SYS flag headers = [] :: list(), payload :: binary(), %% Payload - timestamp :: erlang:timestamp() %% os:timestamp + timestamp :: pos_integer() %% os:timestamp to seconds }). -type(mqtt_message() :: #mqtt_message{}). diff --git a/src/emqttd_message.erl b/src/emqttd_message.erl index 4784e6331..7dfc4fdc6 100644 --- a/src/emqttd_message.erl +++ b/src/emqttd_message.erl @@ -37,7 +37,7 @@ make(From, Topic, Payload) -> -spec(make(msg_from(), mqtt_qos(), binary(), binary()) -> mqtt_message()). make(From, Qos, Topic, Payload) -> - #mqtt_message{msgid = msgid(), + #mqtt_message{id = msgid(), from = From, qos = ?QOS_I(Qos), topic = Topic, @@ -53,7 +53,7 @@ from_packet(#mqtt_packet{header = #mqtt_packet_header{type = ?PUBLISH, variable = #mqtt_packet_publish{topic_name = Topic, packet_id = PacketId}, payload = Payload}) -> - #mqtt_message{msgid = msgid(), + #mqtt_message{id = msgid(), pktid = PacketId, qos = Qos, retain = Retain, @@ -71,7 +71,7 @@ from_packet(#mqtt_packet_connect{client_id = ClientId, will_qos = Qos, will_topic = Topic, will_msg = Msg}) -> - #mqtt_message{msgid = msgid(), + #mqtt_message{id = msgid(), topic = Topic, from = {ClientId, Username}, retain = Retain, @@ -138,13 +138,13 @@ unset_flag(retain, Msg = #mqtt_message{retain = true}) -> unset_flag(Flag, Msg) when Flag =:= dup orelse Flag =:= retain -> Msg. %% @doc Format MQTT Message -format(#mqtt_message{msgid = MsgId, pktid = PktId, from = {ClientId, Username}, +format(#mqtt_message{id = MsgId, pktid = PktId, from = {ClientId, Username}, qos = Qos, retain = Retain, dup = Dup, topic =Topic}) -> io_lib:format("Message(Q~p, R~p, D~p, MsgId=~p, PktId=~p, From=~s/~s, Topic=~s)", [i(Qos), i(Retain), i(Dup), MsgId, PktId, Username, ClientId, Topic]); %% TODO:... -format(#mqtt_message{msgid = MsgId, pktid = PktId, from = From, +format(#mqtt_message{id = MsgId, pktid = PktId, from = From, qos = Qos, retain = Retain, dup = Dup, topic =Topic}) -> io_lib:format("Message(Q~p, R~p, D~p, MsgId=~p, PktId=~p, From=~s, Topic=~s)", [i(Qos), i(Retain), i(Dup), MsgId, PktId, From, Topic]). diff --git a/test/emqttd_protocol_SUITE.erl b/test/emqttd_protocol_SUITE.erl index d9344786d..2d8490a57 100644 --- a/test/emqttd_protocol_SUITE.erl +++ b/test/emqttd_protocol_SUITE.erl @@ -337,9 +337,9 @@ packet_format(_) -> message_make(_) -> Msg = emqttd_message:make(<<"clientid">>, <<"topic">>, <<"payload">>), 0 = Msg#mqtt_message.qos, - undefined = Msg#mqtt_message.msgid, + undefined = Msg#mqtt_message.id, Msg1 = emqttd_message:make(<<"clientid">>, qos2, <<"topic">>, <<"payload">>), - true = is_binary(Msg1#mqtt_message.msgid), + true = is_binary(Msg1#mqtt_message.id), 2 = Msg1#mqtt_message.qos. message_from_packet(_) ->