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

Fix a bug that will not send a will message in some cases (#2068)

* Fix a bug that will not send a will message in some cases
tigercl 7 лет назад
Родитель
Сommit
95ad67b47c
1 измененных файлов с 3 добавлено и 2 удалено
  1. 3 2
      src/emqx_session.erl

+ 3 - 2
src/emqx_session.erl

@@ -963,8 +963,9 @@ ensure_expire_timer(State) ->
 
 ensure_will_delay_timer(State = #state{will_msg = #message{headers = #{'Will-Delay-Interval' := WillDelayInterval}}}) ->
     State#state{will_delay_timer = emqx_misc:start_timer(WillDelayInterval * 1000, will_delay)};
-ensure_will_delay_timer(State) ->
-    State.
+ensure_will_delay_timer(State = #state{will_msg = WillMsg}) ->
+    send_willmsg(WillMsg),
+    State#state{will_msg = undefined}.
 
 ensure_stats_timer(State = #state{enable_stats = true, stats_timer = undefined,
                                   idle_timeout = IdleTimeout}) ->