fix: restart started listener when listener connection options update

This commit is contained in:
Zhongwen Deng 2022-06-16 11:26:54 +08:00
parent 3b00b16abe
commit c6271de174
2 changed files with 16 additions and 1 deletions

View File

@ -377,7 +377,7 @@ post_config_update([listeners, Type, Name], {create, _Request}, NewConf, undefin
start_listener(Type, Name, NewConf);
post_config_update([listeners, Type, Name], {update, _Request}, NewConf, OldConf, _AppEnvs) ->
case NewConf of
#{<<"enabled">> := true} -> restart_listener(Type, Name, {OldConf, NewConf});
#{enabled := true} -> restart_listener(Type, Name, {OldConf, NewConf});
_ -> ok
end;
post_config_update([listeners, _Type, _Name], '$remove', undefined, undefined, _AppEnvs) ->

View File

@ -142,6 +142,21 @@ crud_listeners_by_id(ListenerId, NewListenerId, MinListenerId, BadId, Type) ->
?assertMatch(#{<<"acceptors">> := Acceptors1}, Update),
Get2 = request(get, NewPath, [], []),
?assertMatch(#{<<"acceptors">> := Acceptors1}, Get2),
?assert(is_running(NewListenerId)),
%% update an stopped listener
action_listener(NewListenerId, "stop", false),
?assertNot(is_running(NewListenerId)),
%% update
Get3 = request(get, NewPath, [], []),
#{<<"acceptors">> := Acceptors3} = Get3,
Acceptors4 = Acceptors3 + 1,
Update1 =
request(put, NewPath, [], Get3#{<<"acceptors">> => Acceptors4}),
?assertMatch(#{<<"acceptors">> := Acceptors4}, Update1),
Get4 = request(get, NewPath, [], []),
?assertMatch(#{<<"acceptors">> := Acceptors4}, Get4),
?assertNot(is_running(NewListenerId)),
%% delete
?assertEqual([], delete(NewPath)),