diff options
author | Michael Klishin <michael@clojurewerkz.org> | 2021-11-16 16:37:28 +0300 |
---|---|---|
committer | Michael Klishin <michael@clojurewerkz.org> | 2021-11-16 16:37:28 +0300 |
commit | 8a30cf1c86640cda7bc66563d477869e0ea29a83 (patch) | |
tree | e543794ad93245819e49d4fdce0d5d17ff35b17f | |
parent | e5a4907a60f7da479a349f6289eab1ebd42c00b4 (diff) | |
download | rabbitmq-server-git-8a30cf1c86640cda7bc66563d477869e0ea29a83.tar.gz |
Distribution listener settings support in rabbitmq.conf
* distribution.listener.interface
* distribution.listener.port_range.min
* distribution.listener.port_range.max
Closes #3739
-rw-r--r-- | deps/rabbit/priv/schema/rabbit.schema | 33 | ||||
-rw-r--r-- | deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets | 22 |
2 files changed, 54 insertions, 1 deletions
diff --git a/deps/rabbit/priv/schema/rabbit.schema b/deps/rabbit/priv/schema/rabbit.schema index c850fa8a69..66f9539da8 100644 --- a/deps/rabbit/priv/schema/rabbit.schema +++ b/deps/rabbit/priv/schema/rabbit.schema @@ -1803,6 +1803,37 @@ end}. {validators, ["non_zero_positive_integer"]} ]}. +{mapping, "distribution.listener.port_range.min", "kernel.inet_dist_listen_min", [ + {datatype, [integer]}, + {validators, ["non_zero_positive_integer"]} +]}. + +{mapping, "distribution.listener.port_range.max", "kernel.inet_dist_listen_max", [ + {datatype, [integer]}, + {validators, ["non_zero_positive_integer"]} +]}. + +{mapping, "distribution.listener.interface", "kernel.inet_dist_use_interface", [ + {datatype, [string]}, + {validators, ["is_ip"]} +]}. + +{translation, "kernel.inet_dist_use_interface", + fun(Conf) -> + case cuttlefish:conf_get("distribution.listener.interface", Conf, undefined) of + undefined -> + cuttlefish:unset(); + Value when is_list(Value) -> + case inet:parse_address(Value) of + {ok, Parsed} -> Parsed; + {error, _} -> cuttlefish:invalid("should be a valid IP address") + end; + _ -> + cuttlefish:invalid("should be a valid IP address") + end + end +}. + % ========================== % sysmon_handler section % ========================== @@ -2104,7 +2135,7 @@ fun(File) -> end end}. -{validator, "is_ip", "string is a valid IP address", +{validator, "is_ip", "value should be a valid IP address", fun(IpStr) -> Res = inet:parse_address(IpStr), element(1, Res) == ok diff --git a/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets b/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets index 214a2d1e66..e41ae8cd6d 100644 --- a/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets +++ b/deps/rabbit/test/config_schema_SUITE_data/rabbit.snippets @@ -72,6 +72,28 @@ ssl_options.fail_if_no_peer_cert = true", {num_acceptors, "num_acceptors.ssl = 1",[{rabbit,[{num_ssl_acceptors,1}]}],[]}, + {distribution_listener, + "distribution.listener.interface = 192.168.0.1 + distribution.listener.port_range.min = 25679 + distribution.listener.port_range.max = 25679", + [{kernel, [ + {inet_dist_listen_min, 25679}, + {inet_dist_listen_max, 25679}, + {inet_dist_use_interface, {192,168,0,1}} + ]}], + []}, + + {distribution_listener_ipv6, + "distribution.listener.interface = ::1 + distribution.listener.port_range.min = 25679 + distribution.listener.port_range.max = 25679", + [{kernel, [ + {inet_dist_listen_min, 25679}, + {inet_dist_listen_max, 25679}, + {inet_dist_use_interface, {0,0,0,0,0,0,0,1}} + ]}], + []}, + {socket_writer_gc_threshold, "socket_writer.gc_threshold = 999666111", [{rabbit, [{writer_gc_threshold, 999666111}]}],[]}, |