Просмотр исходного кода

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

Tobias Lindahl 4 лет назад
Родитель
Сommit
7808ffe600
1 измененных файлов с 8 добавлено и 2 удалено
  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.