Explorar el Código

fix(persistent_sessions): protect (un)subscribe from calling session router

Tobias Lindahl hace 4 años
padre
commit
7808ffe600
Se han modificado 1 ficheros con 8 adiciones y 2 borrados
  1. 8 2
      apps/emqx/src/emqx_persistent_session.erl

+ 8 - 2
apps/emqx/src/emqx_persistent_session.erl

@@ -220,12 +220,18 @@ mark_resume_begin(SessionID) ->
     MarkerID.
 
 add_subscription(TopicFilter, SessionID, true = _IsPersistent) ->
-    emqx_session_router:do_add_route(TopicFilter, SessionID);
+    case is_store_enabled() of
+        true  -> emqx_session_router:do_add_route(TopicFilter, SessionID);
+        false -> ok
+    end;
 add_subscription(_TopicFilter, _SessionID, false = _IsPersistent) ->
     ok.
 
 remove_subscription(TopicFilter, SessionID, true = _IsPersistent) ->
-    emqx_session_router:do_delete_route(TopicFilter, SessionID);
+    case is_store_enabled() of
+        true  -> emqx_session_router:do_delete_route(TopicFilter, SessionID);
+        false -> ok
+    end;
 remove_subscription(_TopicFilter, _SessionID, false = _IsPersistent) ->
     ok.