Merge pull request #6110 from HJianBo/force-clear-stomp-listener

fix(emqx_stomp): fix hot-upgrade stopping listener failed
This commit is contained in:
JianBo He 2021-11-10 11:43:51 +08:00 committed by GitHub
commit a81140fd00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -2,7 +2,8 @@
{VSN,
[{"4.3.1",[{load_module,emqx_stomp_connection,brutal_purge,soft_purge,[]}]},
{"4.3.0",
[{restart_application,emqx_stomp}]},
[{restart_application,emqx_stomp},
{apply,{emqx_stomp,force_clear_after_app_stoped,[]}}]},
{<<".*">>,[]}],
[{"4.3.1",[{load_module,emqx_stomp_connection,brutal_purge,soft_purge,[]}]},
{"4.3.0",

View File

@ -33,6 +33,8 @@
, stop_listener/3
]).
-export([force_clear_after_app_stoped/0]).
-export([init/1]).
-define(APP, ?MODULE).
@ -52,6 +54,18 @@ start(_StartType, _StartArgs) ->
stop(_State) ->
stop_listeners().
force_clear_after_app_stoped() ->
lists:foreach(fun({Name = {ProtoName, _}, _}) ->
case is_stomp_listener(ProtoName) of
true -> esockd:close(Name);
_ -> ok
end
end, esockd:listeners()).
is_stomp_listener('stomp:tcp') -> true;
is_stomp_listener('stomp:ssl') -> true;
is_stomp_listener(_) -> false.
%%--------------------------------------------------------------------
%% Supervisor callbacks
%%--------------------------------------------------------------------