From 53145bbbbabb7edb6c6e97c6937337f413402470 Mon Sep 17 00:00:00 2001 From: HuangDan Date: Thu, 6 Jul 2017 17:01:27 +0800 Subject: [PATCH 1/3] Update subscriptions/1 function spec --- src/emqttd.erl | 2 +- src/emqttd_server.erl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/emqttd.erl b/src/emqttd.erl index 037c0de1a..c60f8d590 100644 --- a/src/emqttd.erl +++ b/src/emqttd.erl @@ -122,7 +122,7 @@ topics() -> emqttd_router:topics(). subscribers(Topic) -> emqttd_server:subscribers(iolist_to_binary(Topic)). --spec(subscriptions(subscriber()) -> [{binary(), suboption()}]). +-spec(subscriptions(subscriber()) -> [{binary(), binary(), list(suboption())}]). subscriptions(Subscriber) -> emqttd_server:subscriptions(Subscriber). diff --git a/src/emqttd_server.erl b/src/emqttd_server.erl index ec57f2802..ee79ac4fb 100644 --- a/src/emqttd_server.erl +++ b/src/emqttd_server.erl @@ -130,7 +130,7 @@ async_unsubscribe(Topic, Subscriber) when is_binary(Topic) -> setqos(Topic, Subscriber, Qos) when is_binary(Topic) -> call(pick(Subscriber), {setqos, Topic, Subscriber, Qos}). --spec(subscriptions(emqttd:subscriber()) -> [{binary(), list(emqttd:suboption())}]). +-spec(subscriptions(emqttd:subscriber()) -> [{binary(), binary(), list(emqttd:suboption())}]). subscriptions(Subscriber) -> lists:map(fun({_, {_Share, Topic}}) -> subscription(Topic, Subscriber); From e675959d571e2bfdd2a25caa907b160ac4ffc58c Mon Sep 17 00:00:00 2001 From: HuangDan Date: Thu, 6 Jul 2017 17:28:49 +0800 Subject: [PATCH 2/3] Fix received/1 and sent/1 function spec --- src/emqttd_cli.erl | 2 -- src/emqttd_metrics.erl | 6 +++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/emqttd_cli.erl b/src/emqttd_cli.erl index 2ebe43f13..d14e30aa3 100644 --- a/src/emqttd_cli.erl +++ b/src/emqttd_cli.erl @@ -249,8 +249,6 @@ subscriptions(["add", ClientId, Topic, QoS]) -> case emqttd:subscribe(bin(Topic), bin(ClientId), [{qos, IntQos}]) of ok -> ?PRINT_MSG("ok~n"); - {error, already_existed} -> - ?PRINT_MSG("Error: already existed~n"); {error, Reason} -> ?PRINT("Error: ~p~n", [Reason]) end diff --git a/src/emqttd_metrics.erl b/src/emqttd_metrics.erl index 2c0e42ea0..c21d274a0 100644 --- a/src/emqttd_metrics.erl +++ b/src/emqttd_metrics.erl @@ -102,7 +102,7 @@ start_link() -> gen_server:start_link({local, ?SERVER}, ?MODULE, [], []). %% @doc Count packets received. --spec(received(mqtt_packet()) -> ok). +-spec(received(mqtt_packet()) -> ignore | non_neg_integer()). received(Packet) -> inc('packets/received'), received1(Packet). @@ -140,7 +140,7 @@ qos_received(?QOS_2) -> inc('messages/qos2/received'). %% @doc Count packets received. Will not count $SYS PUBLISH. --spec(sent(mqtt_packet()) -> ok). +-spec(sent(mqtt_packet()) -> ignore | non_neg_integer()). sent(?PUBLISH_PACKET(_Qos, <<"$SYS/", _/binary>>, _, _)) -> ignore; sent(Packet) -> @@ -169,7 +169,7 @@ sent2(?UNSUBACK) -> sent2(?PINGRESP) -> inc('packets/pingresp'); sent2(_Type) -> - ingore. + ignore. qos_sent(?QOS_0) -> inc('messages/qos0/sent'); qos_sent(?QOS_1) -> From 3488d14776a9c6161595d33960b98ce5a9be8b9f Mon Sep 17 00:00:00 2001 From: HuangDan Date: Thu, 6 Jul 2017 18:59:54 +0800 Subject: [PATCH 3/3] Add 'undefined' from a record field's type --- src/emqttd_session.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/emqttd_session.erl b/src/emqttd_session.erl index 02d23567f..864905b05 100644 --- a/src/emqttd_session.erl +++ b/src/emqttd_session.erl @@ -120,7 +120,7 @@ retry_interval = 20000 :: timeout(), %% Retry Timer - retry_timer :: reference(), + retry_timer :: reference() | undefined, %% All QoS1, QoS2 messages published to when client is disconnected. %% QoS 1 and QoS 2 messages pending transmission to the Client. @@ -138,13 +138,13 @@ await_rel_timeout = 20000 :: timeout(), %% Awaiting PUBREL timer - await_rel_timer :: reference(), + await_rel_timer :: reference() | undefined, %% Session Expiry Interval expiry_interval = 7200000 :: timeout(), %% Expired Timer - expiry_timer :: reference(), + expiry_timer :: reference() | undefined, %% Enable Stats enable_stats :: boolean(),