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

fix(ws): avoid funcation_clause for un-inited websocket

JianBo He 4 лет назад
Родитель
Сommit
2bc586b930
2 измененных файлов с 12 добавлено и 3 удалено
  1. 8 2
      apps/emqx/src/emqx.appup.src
  2. 4 1
      apps/emqx/src/emqx_ws_connection.erl

+ 8 - 2
apps/emqx/src/emqx.appup.src

@@ -2,9 +2,12 @@
 {VSN,
   [
    {"4.3.3",
-    [{load_module,emqx_packet,brutal_purge,soft_purge,[]}]},
+    [{load_module,emqx_packet,brutal_purge,soft_purge,[]},
+     {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}
+    ]},
    {"4.3.2",
     [{load_module,emqx_packet,brutal_purge,soft_purge,[]},
+     {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
      {load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
      {load_module,emqx_channel,brutal_purge,soft_purge,[]},
      {load_module,emqx_app,brutal_purge,soft_purge,[]},
@@ -41,9 +44,12 @@
      {load_module,emqx_http_lib,brutal_purge,soft_purge,[]}]},
    {<<".*">>,[]}],
   [{"4.3.3",
-    [{load_module,emqx_packet,brutal_purge,soft_purge,[]}]},
+    [{load_module,emqx_packet,brutal_purge,soft_purge,[]},
+     {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]}
+    ]},
    {"4.3.2",
     [{load_module,emqx_packet,brutal_purge,soft_purge,[]},
+     {load_module,emqx_ws_connection,brutal_purge,soft_purge,[]},
      {load_module,emqx_http_lib,brutal_purge,soft_purge,[]},
      {load_module,emqx_channel,brutal_purge,soft_purge,[]},
      {load_module,emqx_app,brutal_purge,soft_purge,[]},

+ 4 - 1
apps/emqx/src/emqx_ws_connection.erl

@@ -403,7 +403,10 @@ websocket_close(Reason, State) ->
 
 terminate(Reason, _Req, #state{channel = Channel}) ->
     ?LOG(debug, "Terminated due to ~p", [Reason]),
-    emqx_channel:terminate(Reason, Channel).
+    emqx_channel:terminate(Reason, Channel);
+
+terminate(_Reason, _Req, _UnExpectedState) ->
+    ok.
 
 %%--------------------------------------------------------------------
 %% Handle call