From 01bfb830f5ef095d0d3f7e8582c15dd593a1a0a8 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Sat, 23 May 2015 00:20:58 +0800 Subject: [PATCH] forced subscriptions --- apps/emqttd/src/emqttd_protocol.erl | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/apps/emqttd/src/emqttd_protocol.erl b/apps/emqttd/src/emqttd_protocol.erl index eb08b62fd..03845c482 100644 --- a/apps/emqttd/src/emqttd_protocol.erl +++ b/apps/emqttd/src/emqttd_protocol.erl @@ -217,7 +217,7 @@ handle(?SUBSCRIBE_PACKET(PacketId, TopicTable), State = #proto_state{clientid = send(?SUBACK_PACKET(PacketId, GrantedQos), State#proto_state{session = NewSession}) end; -handle({subscribe, Topic, Qos}, State = #proto_state{clientid = ClientId, session = Session}) -> +handle({subscribe, Topic, Qos}, State = #proto_state{session = Session}) -> {ok, NewSession, _GrantedQos} = emqttd_session:subscribe(Session, [{Topic, Qos}]), {ok, State#proto_state{session = NewSession}}; @@ -300,12 +300,8 @@ send_willmsg(ClientId, WillMsg) -> %%TODO: will be fixed in 0.8 force_subscribe(ClientId) -> - case emqttd_broker:env(forced_subscriptions) of - undefined -> - ingore; - Topics -> - [force_subscribe(ClientId, {Topic, Qos}) || {Topic, Qos} <- Topics] - end. + [force_subscribe(ClientId, {Topic, Qos}) || {Topic, Qos} <- + proplists:get_value(forced_subscriptions, emqttd:env(mqtt, client), [])]. force_subscribe(ClientId, {Topic, Qos}) when is_list(Topic) -> force_subscribe(ClientId, {list_to_binary(Topic), Qos}); @@ -315,6 +311,7 @@ force_subscribe(ClientId, {Topic, Qos}) when is_binary(Topic) -> self() ! {force_subscribe, Topic1, Qos}. start_keepalive(0) -> ignore; + start_keepalive(Sec) when Sec > 0 -> self() ! {keepalive, start, round(Sec * 1.5)}.