Przeglądaj źródła

Remove resume_session/1,

周子博 7 lat temu
rodzic
commit
3cea06f88f
2 zmienionych plików z 21 dodań i 28 usunięć
  1. 19 22
      src/emqx_session.erl
  2. 2 6
      src/emqx_sm.erl

+ 19 - 22
src/emqx_session.erl

@@ -47,7 +47,7 @@
 -export([info/1, attrs/1]).
 -export([stats/1]).
 -export([resume/2, discard/2]).
--export([update_expiry_interval/2, update_misc/2]).
+-export([update_expiry_interval/2]).
 -export([subscribe/2, subscribe/4]).
 -export([publish/3]).
 -export([puback/2, puback/3]).
@@ -324,9 +324,6 @@ discard(SPid, ByPid) ->
 update_expiry_interval(SPid, Interval) ->
     gen_server:cast(SPid, {expiry_interval, Interval}).
 
-update_misc(SPid, Misc) ->
-    gen_server:cast(SPid, {update_misc, Misc}).
-
 -spec(close(spid()) -> ok).
 close(SPid) ->
     gen_server:call(SPid, close, infinity).
@@ -517,9 +514,11 @@ handle_cast({pubcomp, PacketId, _ReasonCode}, State = #state{inflight = Inflight
     end;
 
 %% RESUME:
-handle_cast({resume, #{conn_pid        := ConnPid,
-                       will_msg        := WillMsg,
-                       expiry_interval := SessionExpiryInterval}}, State = #state{client_id        = ClientId,
+handle_cast({resume, #{conn_pid            := ConnPid,
+                       will_msg            := WillMsg,
+                       expiry_interval     := SessionExpiryInterval,
+                       max_inflight        := MaxInflight, 
+                       topic_alias_maximum := TopicAliasMaximum}}, State = #state{client_id        = ClientId,
                                                                                   conn_pid         = OldConnPid,
                                                                                   clean_start      = CleanStart,
                                                                                   retry_timer      = RetryTimer,
@@ -539,17 +538,19 @@ handle_cast({resume, #{conn_pid        := ConnPid,
 
     true = link(ConnPid),
 
-    State1 = State#state{conn_pid         = ConnPid,
-                         binding          = binding(ConnPid),
-                         old_conn_pid     = OldConnPid,
-                         clean_start      = false,
-                         retry_timer      = undefined,
-                         awaiting_rel     = #{},
-                         await_rel_timer  = undefined,
-                         expiry_timer     = undefined,
-                         expiry_interval  = SessionExpiryInterval,
-                         will_delay_timer = undefined,
-                         will_msg         = WillMsg},
+    State1 = State#state{conn_pid            = ConnPid,
+                         binding             = binding(ConnPid),
+                         old_conn_pid        = OldConnPid,
+                         clean_start         = false,
+                         retry_timer         = undefined,
+                         awaiting_rel        = #{},
+                         await_rel_timer     = undefined,
+                         expiry_timer        = undefined,
+                         expiry_interval     = SessionExpiryInterval,
+                         inflight            = emqx_inflight:update_size(MaxInflight, State#state.inflight), 
+                         topic_alias_maximum = TopicAliasMaximum,
+                         will_delay_timer    = undefined,
+                         will_msg            = WillMsg},
 
     %% Clean Session: true -> false???
     CleanStart andalso emqx_sm:set_session_attrs(ClientId, attrs(State1)),
@@ -562,10 +563,6 @@ handle_cast({resume, #{conn_pid        := ConnPid,
 handle_cast({expiry_interval, Interval}, State) ->
     {noreply, State#state{expiry_interval = Interval}};
 
-handle_cast({update_misc, #{max_inflight := MaxInflight, topic_alias_maximum := TopicAliasMaximum}}, State) ->
-    {noreply, State#state{inflight            = emqx_inflight:update_size(MaxInflight, State#state.inflight),
-                          topic_alias_maximum = TopicAliasMaximum}};
-
 handle_cast(Msg, State) ->
     emqx_logger:error("[Session] unexpected cast: ~p", [Msg]),
     {noreply, State}.

+ 2 - 6
src/emqx_sm.erl

@@ -22,7 +22,7 @@
 
 -export([open_session/1, close_session/1]).
 -export([lookup_session/1, lookup_session_pid/1]).
--export([resume_session/1, resume_session/2]).
+-export([resume_session/2]).
 -export([discard_session/1, discard_session/2]).
 -export([register_session/2, unregister_session/1]).
 -export([get_session_attrs/1, set_session_attrs/2]).
@@ -66,7 +66,6 @@ open_session(SessAttrs = #{clean_start          := false,
     ResumeStart = fun(_) ->
                       case resume_session(ClientId, SessAttrs) of
                           {ok, SPid} ->
-                              emqx_session:update_misc(SPid, #{max_inflight => MaxInflight, topic_alias_maximum => TopicAliasMaximum}),
                               {ok, SPid, true};
                           {error, not_found} ->
                               emqx_session_sup:start_session(SessAttrs)
@@ -89,10 +88,7 @@ discard_session(ClientId, ConnPid) when is_binary(ClientId) ->
                   end, lookup_session(ClientId)).
 
 %% @doc Try to resume a session.
--spec(resume_session(emqx_types:client_id()) -> {ok, pid()} | {error, term()}).
-resume_session(ClientId) ->
-    resume_session(ClientId, #{conn_pid => self(), will_msg => undefined}).
-
+-spec(resume_session(emqx_types:client_id(), map()) -> {ok, pid()} | {error, term()}).
 resume_session(ClientId, SessAttrs = #{conn_pid := ConnPid}) ->
     case lookup_session(ClientId) of
         [] -> {error, not_found};