zhouzb пре 6 година
родитељ
комит
dace882667
1 измењених фајлова са 5 додато и 1 уклоњено
  1. 5 1
      src/emqx_channel.erl

+ 5 - 1
src/emqx_channel.erl

@@ -882,7 +882,11 @@ terminate(normal, #channel{conninfo = ConnInfo, clientinfo = ClientInfo}) ->
 terminate({shutdown, Reason}, #channel{conninfo = ConnInfo, clientinfo = ClientInfo})
     when Reason =:= kicked orelse Reason =:= discarded orelse Reason =:= takeovered ->
     ok = emqx_hooks:run('client.disconnected', [ClientInfo, Reason, ConnInfo]);
-terminate(Reason, #channel{conninfo = ConnInfo, clientinfo = ClientInfo}) ->
+terminate(Reason, #channel{conninfo = ConnInfo, clientinfo = ClientInfo, will_msg = WillMsg}) ->
+    case WillMsg of
+        undefined -> ok;
+        _ -> publish_will_msg(WillMsg)
+    end,
     ok = emqx_hooks:run('client.disconnected', [ClientInfo, Reason, ConnInfo]).
 
 %%--------------------------------------------------------------------