This commit is contained in:
Feng Lee 2015-03-09 23:02:36 +08:00
parent 9a05181844
commit 81494e0aa0
1 changed files with 10 additions and 11 deletions

View File

@ -279,13 +279,13 @@ handle_call({unsubscribe, Topics}, _From, State) ->
handle_call(Req, _From, State) -> handle_call(Req, _From, State) ->
{stop, {badreq, Req}, State}. {stop, {badreq, Req}, State}.
handle_cast({resume, ClientId, ClientPid}, State = #session_state{ handle_cast({resume, ClientId, ClientPid}, State = #session_state{
client_id = ClientId, client_id = ClientId,
client_pid = undefined, client_pid = undefined,
msg_queue = Queue, msg_queue = Queue,
awaiting_ack = AwaitingAck, awaiting_ack = AwaitingAck,
awaiting_comp = AwaitingComp, awaiting_comp = AwaitingComp,
expire_timer = ETimer}) -> expire_timer = ETimer}) ->
lager:info("Session ~s resumed by ~p", [ClientId, ClientPid]), lager:info("Session ~s resumed by ~p", [ClientId, ClientPid]),
%cancel timeout timer %cancel timeout timer
erlang:cancel_timer(ETimer), erlang:cancel_timer(ETimer),
@ -306,10 +306,9 @@ handle_cast({resume, ClientId, ClientPid}, State = #session_state{
ClientPid ! {dispatch, {self(), Msg}} ClientPid ! {dispatch, {self(), Msg}}
end, emqtt_queue:all(Queue)), end, emqtt_queue:all(Queue)),
NewState = State#session_state{client_pid = ClientPid, {noreply, State#session_state{client_pid = ClientPid,
msg_queue = emqtt_queue:clear(Queue), msg_queue = emqtt_queue:clear(Queue),
expire_timer = undefined}, expire_timer = undefined}, hibernate};
{noreply, NewState, hibernate};
handle_cast({publish, ?QOS_2, Message}, State) -> handle_cast({publish, ?QOS_2, Message}, State) ->
NewState = publish(State, {?QOS_2, Message}), NewState = publish(State, {?QOS_2, Message}),