From 82bd645d7ab93e5394a694554e08907d515420da Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Wed, 24 Jun 2015 01:56:44 +0800 Subject: [PATCH] fix session issue --- src/emqttd_session.erl | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/emqttd_session.erl b/src/emqttd_session.erl index e6bc4dce5..93c9fd54b 100644 --- a/src/emqttd_session.erl +++ b/src/emqttd_session.erl @@ -323,6 +323,8 @@ handle_cast({resume, ClientId, ClientPid}, Session) -> kick(ClientId, ClientPid, OldClientPid), + true = link(ClientPid), + %% Redeliver PUBREL [ClientPid ! {redeliver, {?PUBREL, MsgId}} || MsgId <- maps:keys(AwaitingComp)], @@ -479,12 +481,12 @@ handle_info({'EXIT', ClientPid, _Reason}, Session = #session{clean_sess = true, {stop, normal, Session}; handle_info({'EXIT', ClientPid, Reason}, Session = #session{clean_sess = false, - clientid = ClientId, + clientid = ClientId, client_pid = ClientPid, expired_after = Expires}) -> lager:info("Session ~s unlink with client ~p: reason=~p", [ClientId, ClientPid, Reason]), TRef = timer(Expires, session_expired), - {noreply, Session#session{expired_timer = TRef}, hibernate}; + {noreply, Session#session{client_pid = undefined, expired_timer = TRef}, hibernate}; handle_info({'EXIT', Pid, _Reason}, Session = #session{clientid = ClientId, client_pid = ClientPid}) ->