fix: add update_conf function for emqx_conf.
This commit is contained in:
parent
6c1ceb9cc1
commit
f62795d919
|
@ -255,6 +255,27 @@ end}.
|
||||||
{validator, "range4ports", "must be 1024 to 134217727",
|
{validator, "range4ports", "must be 1024 to 134217727",
|
||||||
fun(X) -> X >= 1024 andalso X =< 134217727 end}.
|
fun(X) -> X >= 1024 andalso X =< 134217727 end}.
|
||||||
|
|
||||||
|
{validator, "range:0-2", "must be 0 to 2",
|
||||||
|
fun(X) -> X >= 0 andalso X =< 2 end}.
|
||||||
|
|
||||||
|
{validator, "range:0-128", "must be 0 to 128",
|
||||||
|
fun(X) -> X >= 0 andalso X =< 128 end}.
|
||||||
|
|
||||||
|
{validator, "range:0-65535", "must be 0 to 65535",
|
||||||
|
fun(X) -> X >= 0 andalso X =< 65535 end}.
|
||||||
|
|
||||||
|
{validator, "range:1-65535", "must be 1 to 65535",
|
||||||
|
fun(X) -> X >= 1 andalso X =< 65535 end}.
|
||||||
|
|
||||||
|
{validator, "range:1-9", "must be 1 to 9",
|
||||||
|
fun(X) -> X >= 1 andalso X =< 9 end}.
|
||||||
|
|
||||||
|
{validator, "range:8-15", "must be 8 to 15",
|
||||||
|
fun(X) -> X >= 8 andalso X =< 15 end}.
|
||||||
|
|
||||||
|
{validator, "range:0-1024", "must be 0 to 1024",
|
||||||
|
fun(X) -> X >= 0 andalso X =< 1024 end}.
|
||||||
|
|
||||||
%% @doc http://www.erlang.org/doc/man/erl.html#%2bzdbbl
|
%% @doc http://www.erlang.org/doc/man/erl.html#%2bzdbbl
|
||||||
{mapping, "node.dist_buffer_size", "vm_args.+zdbbl", [
|
{mapping, "node.dist_buffer_size", "vm_args.+zdbbl", [
|
||||||
{datatype, bytesize},
|
{datatype, bytesize},
|
||||||
|
@ -290,10 +311,10 @@ end}.
|
||||||
{default, 1000},
|
{default, 1000},
|
||||||
{datatype, integer},
|
{datatype, integer},
|
||||||
hidden,
|
hidden,
|
||||||
{validators, ["positive_integer"]}
|
{validators, ["range:0-inf"]}
|
||||||
]}.
|
]}.
|
||||||
|
|
||||||
{validator, "positive_integer", "must be a positive integer",
|
{validator, "range:0-inf", "must be non neg_integer",
|
||||||
fun(X) -> X >= 0 end}.
|
fun(X) -> X >= 0 end}.
|
||||||
|
|
||||||
%% Note: OTP R15 and earlier uses -env ERL_MAX_ETS_TABLES,
|
%% Note: OTP R15 and earlier uses -env ERL_MAX_ETS_TABLES,
|
||||||
|
@ -758,7 +779,8 @@ end}.
|
||||||
%% @doc Set the Maximum topic levels.
|
%% @doc Set the Maximum topic levels.
|
||||||
{mapping, "mqtt.max_topic_levels", "emqx.max_topic_levels", [
|
{mapping, "mqtt.max_topic_levels", "emqx.max_topic_levels", [
|
||||||
{default, 128},
|
{default, 128},
|
||||||
{datatype, integer}
|
{datatype, integer},
|
||||||
|
{validators, ["range:0-inf"]}
|
||||||
]}.
|
]}.
|
||||||
|
|
||||||
%% @doc Set the Maximum QoS allowed.
|
%% @doc Set the Maximum QoS allowed.
|
||||||
|
@ -771,7 +793,8 @@ end}.
|
||||||
%% @doc Set the Maximum Topic Alias.
|
%% @doc Set the Maximum Topic Alias.
|
||||||
{mapping, "mqtt.max_topic_alias", "emqx.max_topic_alias", [
|
{mapping, "mqtt.max_topic_alias", "emqx.max_topic_alias", [
|
||||||
{default, 65535},
|
{default, 65535},
|
||||||
{datatype, integer}
|
{datatype, integer},
|
||||||
|
{validators, ["range:0-65535"]}
|
||||||
]}.
|
]}.
|
||||||
|
|
||||||
%% @doc Whether the server supports MQTT retained messages.
|
%% @doc Whether the server supports MQTT retained messages.
|
||||||
|
@ -868,7 +891,8 @@ end}.
|
||||||
|
|
||||||
%% @doc Set the Maximum topic levels.
|
%% @doc Set the Maximum topic levels.
|
||||||
{mapping, "zone.$name.max_topic_levels", "emqx.zones", [
|
{mapping, "zone.$name.max_topic_levels", "emqx.zones", [
|
||||||
{datatype, integer}
|
{datatype, integer},
|
||||||
|
{validators, ["range:0-128"]}
|
||||||
]}.
|
]}.
|
||||||
|
|
||||||
%% @doc Set the Maximum QoS allowed.
|
%% @doc Set the Maximum QoS allowed.
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
{load_module, emqx_session, brutal_purge, soft_purge, []},
|
{load_module, emqx_session, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_metrics, brutal_purge, soft_purge, []},
|
{load_module, emqx_metrics, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{suspend, [esockd_acceptor,emqx_connection, emqx_ws_connection]},
|
{suspend, [esockd_acceptor,emqx_connection, emqx_ws_connection]},
|
||||||
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
||||||
{update, emqx_connection, {advanced, []}},
|
{update, emqx_connection, {advanced, []}},
|
||||||
|
@ -37,6 +38,7 @@
|
||||||
{load_module, emqx_channel, brutal_purge, soft_purge, []},
|
{load_module, emqx_channel, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_session, brutal_purge, soft_purge, []},
|
{load_module, emqx_session, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{suspend, [esockd_acceptor, emqx_connection, emqx_ws_connection]},
|
{suspend, [esockd_acceptor, emqx_connection, emqx_ws_connection]},
|
||||||
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
||||||
{update, emqx_connection, {advanced, []}},
|
{update, emqx_connection, {advanced, []}},
|
||||||
|
@ -80,6 +82,7 @@
|
||||||
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.4">>, [
|
{<<"4.2.4">>, [
|
||||||
|
@ -104,6 +107,7 @@
|
||||||
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.5">>, [
|
{<<"4.2.5">>, [
|
||||||
|
@ -128,6 +132,7 @@
|
||||||
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.[6-7]">>, [
|
{<<"4.2.[6-7]">>, [
|
||||||
|
@ -146,6 +151,7 @@
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.8">>, [
|
{<<"4.2.8">>, [
|
||||||
|
@ -156,6 +162,7 @@
|
||||||
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_cm, brutal_purge, soft_purge, []},
|
{load_module, emqx_cm, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
|
@ -168,6 +175,7 @@
|
||||||
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
|
@ -180,6 +188,8 @@
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<".*">>, []}
|
{<<".*">>, []}
|
||||||
|
@ -192,6 +202,7 @@
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_metrics, brutal_purge, soft_purge, []},
|
{load_module, emqx_metrics, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{suspend, [esockd_acceptor, emqx_connection, emqx_ws_connection]},
|
{suspend, [esockd_acceptor, emqx_connection, emqx_ws_connection]},
|
||||||
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
{load_module, emqx_frame, brutal_purge, soft_purge, []},
|
||||||
{update, emqx_connection, {advanced, []}},
|
{update, emqx_connection, {advanced, []}},
|
||||||
|
@ -218,6 +229,7 @@
|
||||||
{load_module, emqx_shared_sub, brutal_purge, soft_purge, []},
|
{load_module, emqx_shared_sub, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{suspend, [esockd_acceptor, emqx_connection, emqx_ws_connection]},
|
{suspend, [esockd_acceptor, emqx_connection, emqx_ws_connection]},
|
||||||
{load_module, emqx_channel, brutal_purge, soft_purge, []},
|
{load_module, emqx_channel, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_session, brutal_purge, soft_purge, []},
|
{load_module, emqx_session, brutal_purge, soft_purge, []},
|
||||||
|
@ -263,6 +275,7 @@
|
||||||
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.4">>, [
|
{<<"4.2.4">>, [
|
||||||
|
@ -287,6 +300,7 @@
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.5">>, [
|
{<<"4.2.5">>, [
|
||||||
|
@ -311,6 +325,7 @@
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.[6-7]">>, [
|
{<<"4.2.[6-7]">>, [
|
||||||
|
@ -329,6 +344,7 @@
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
{load_module, emqx_misc,brutal_purge,soft_purge,[]},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.8">>, [
|
{<<"4.2.8">>, [
|
||||||
|
@ -342,6 +358,7 @@
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<"4.2.9">>, [
|
{<<"4.2.9">>, [
|
||||||
|
@ -351,6 +368,7 @@
|
||||||
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
{load_module, emqx_ws_connection, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
|
@ -363,6 +381,8 @@
|
||||||
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
{load_module, emqx_app, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
{load_module, emqx_os_mon, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
{load_module, emqx_alarm, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_limiter, brutal_purge, soft_purge, []},
|
||||||
|
{load_module, emqx_listeners, brutal_purge, soft_purge, []},
|
||||||
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
{load_module, emqx_plugins, brutal_purge, soft_purge, []}
|
||||||
]},
|
]},
|
||||||
{<<".*">>, []}
|
{<<".*">>, []}
|
||||||
|
|
|
@ -23,7 +23,8 @@
|
||||||
, init/4 %% XXX: Compatible with before 4.2 version
|
, init/4 %% XXX: Compatible with before 4.2 version
|
||||||
, info/1
|
, info/1
|
||||||
, check/2
|
, check/2
|
||||||
, update_overall_limiter/4
|
, update_overall_limiter/3
|
||||||
|
, delete_overall_limiter/1
|
||||||
]).
|
]).
|
||||||
|
|
||||||
-record(limiter, {
|
-record(limiter, {
|
||||||
|
@ -154,14 +155,18 @@ is_message_limiter(conn_messages_routing) -> true;
|
||||||
is_message_limiter(overall_messages_routing) -> true;
|
is_message_limiter(overall_messages_routing) -> true;
|
||||||
is_message_limiter(_) -> false.
|
is_message_limiter(_) -> false.
|
||||||
|
|
||||||
update_overall_limiter(Zone, Name, Capacity, Interval) ->
|
update_overall_limiter(Zone, Capacity, Interval) ->
|
||||||
case is_overall_limiter(Name) of
|
try
|
||||||
false -> false;
|
esockd_limiter:update({Zone, overall_messages_routing}, Capacity, Interval),
|
||||||
_ ->
|
true
|
||||||
try
|
catch _:_:_ ->
|
||||||
esockd_limiter:update({Zone, Name}, Capacity, Interval),
|
false
|
||||||
true
|
end.
|
||||||
catch _:_:_ ->
|
|
||||||
false
|
delete_overall_limiter(Zone) ->
|
||||||
end
|
try
|
||||||
|
esockd_limiter:delete({Zone, overall_messages_routing}),
|
||||||
|
true
|
||||||
|
catch _:_:_ ->
|
||||||
|
false
|
||||||
end.
|
end.
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
, start_listener/3
|
, start_listener/3
|
||||||
, stop_listener/1
|
, stop_listener/1
|
||||||
, stop_listener/3
|
, stop_listener/3
|
||||||
|
, update_listeners_env/2
|
||||||
, restart_listener/1
|
, restart_listener/1
|
||||||
, restart_listener/3
|
, restart_listener/3
|
||||||
]).
|
]).
|
||||||
|
@ -114,6 +115,20 @@ with_port({Addr, Port}, Opts = #{socket_opts := SocketOption}) ->
|
||||||
restart() ->
|
restart() ->
|
||||||
lists:foreach(fun restart_listener/1, emqx:get_env(listeners, [])).
|
lists:foreach(fun restart_listener/1, emqx:get_env(listeners, [])).
|
||||||
|
|
||||||
|
update_listeners_env(Action, NewConf = #{name := NewName, proto := NewProto}) ->
|
||||||
|
Listener = emqx:get_env(listeners, []),
|
||||||
|
Listener1 = lists:filter(
|
||||||
|
fun(#{name := Name, proto := Proto}) ->
|
||||||
|
not (Name =:= NewName andalso Proto =:= NewProto)
|
||||||
|
end, Listener),
|
||||||
|
Listener2 =
|
||||||
|
case Action of
|
||||||
|
update -> [NewConf | Listener1];
|
||||||
|
delete -> Listener1
|
||||||
|
end,
|
||||||
|
application:set_env(emqx, listeners, Listener2),
|
||||||
|
ok.
|
||||||
|
|
||||||
-spec(restart_listener(listener()) -> any()).
|
-spec(restart_listener(listener()) -> any()).
|
||||||
restart_listener({Proto, ListenOn, Options}) ->
|
restart_listener({Proto, ListenOn, Options}) ->
|
||||||
restart_listener(Proto, ListenOn, Options).
|
restart_listener(Proto, ListenOn, Options).
|
||||||
|
|
Loading…
Reference in New Issue