summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--priv/schema/rabbitmq.schema21
-rw-r--r--test/config_schema_SUITE_data/schema/rabbitmq.schema21
-rw-r--r--test/config_schema_SUITE_data/schema/rabbitmq_mqtt.schema13
-rw-r--r--test/config_schema_SUITE_data/snippets.config20
4 files changed, 72 insertions, 3 deletions
diff --git a/priv/schema/rabbitmq.schema b/priv/schema/rabbitmq.schema
index 19040da409..bf9cccbcb8 100644
--- a/priv/schema/rabbitmq.schema
+++ b/priv/schema/rabbitmq.schema
@@ -522,7 +522,7 @@ end}.
{translation, "rabbit.tcp_listen_options",
fun(Conf) ->
- case cuttlefish:conf_get("tcp_listen_options", undefined) of
+ case cuttlefish:conf_get("tcp_listen_options", Conf, undefined) of
none -> [];
_ -> cuttlefish:invalid("Invalid tcp_listen_options")
end
@@ -587,6 +587,20 @@ end}.
{mapping, "tcp_listen_options.tos", "rabbit.tcp_listen_options.tos",
[{datatype, integer}]}.
+{mapping, "tcp_listen_options.linger.on", "rabbit.tcp_listen_options.linger",
+ [{datatype, {enum, [true, false]}}]}.
+
+{mapping, "tcp_listen_options.linger.timeout", "rabbit.tcp_listen_options.linger",
+ [{datatype, integer}, {validators, ["non_negative_integer"]}]}.
+
+{translation, "rabbit.tcp_listen_options.linger",
+fun(Conf) ->
+ LingerOn = cuttlefish:conf_get("tcp_listen_options.linger.on", Conf, false),
+ LingerTimeout = cuttlefish:conf_get("tcp_listen_options.linger.timeout", Conf, 0),
+ {LingerOn, LingerTimeout}
+end}.
+
+
%% ==========================================================================
%%
@@ -959,3 +973,8 @@ fun(IpStr) ->
Res = inet:parse_address(IpStr),
element(1, Res) == ok
end}.
+
+{validator, "non_negative_integer", "number should be greater or equal to zero",
+fun(Int) when is_integer(Int) ->
+ Int >= 0
+end}.
diff --git a/test/config_schema_SUITE_data/schema/rabbitmq.schema b/test/config_schema_SUITE_data/schema/rabbitmq.schema
index 19040da409..bf9cccbcb8 100644
--- a/test/config_schema_SUITE_data/schema/rabbitmq.schema
+++ b/test/config_schema_SUITE_data/schema/rabbitmq.schema
@@ -522,7 +522,7 @@ end}.
{translation, "rabbit.tcp_listen_options",
fun(Conf) ->
- case cuttlefish:conf_get("tcp_listen_options", undefined) of
+ case cuttlefish:conf_get("tcp_listen_options", Conf, undefined) of
none -> [];
_ -> cuttlefish:invalid("Invalid tcp_listen_options")
end
@@ -587,6 +587,20 @@ end}.
{mapping, "tcp_listen_options.tos", "rabbit.tcp_listen_options.tos",
[{datatype, integer}]}.
+{mapping, "tcp_listen_options.linger.on", "rabbit.tcp_listen_options.linger",
+ [{datatype, {enum, [true, false]}}]}.
+
+{mapping, "tcp_listen_options.linger.timeout", "rabbit.tcp_listen_options.linger",
+ [{datatype, integer}, {validators, ["non_negative_integer"]}]}.
+
+{translation, "rabbit.tcp_listen_options.linger",
+fun(Conf) ->
+ LingerOn = cuttlefish:conf_get("tcp_listen_options.linger.on", Conf, false),
+ LingerTimeout = cuttlefish:conf_get("tcp_listen_options.linger.timeout", Conf, 0),
+ {LingerOn, LingerTimeout}
+end}.
+
+
%% ==========================================================================
%%
@@ -959,3 +973,8 @@ fun(IpStr) ->
Res = inet:parse_address(IpStr),
element(1, Res) == ok
end}.
+
+{validator, "non_negative_integer", "number should be greater or equal to zero",
+fun(Int) when is_integer(Int) ->
+ Int >= 0
+end}.
diff --git a/test/config_schema_SUITE_data/schema/rabbitmq_mqtt.schema b/test/config_schema_SUITE_data/schema/rabbitmq_mqtt.schema
index 1daab5423d..ffda10beaa 100644
--- a/test/config_schema_SUITE_data/schema/rabbitmq_mqtt.schema
+++ b/test/config_schema_SUITE_data/schema/rabbitmq_mqtt.schema
@@ -233,3 +233,16 @@ end}.
{mapping, "mqtt.tcp_listen_options.tos", "rabbitmq_mqtt.tcp_listen_options.tos",
[{datatype, integer}]}.
+
+{mapping, "mqtt.tcp_listen_options.linger.on", "rabbitmq_mqtt.tcp_listen_options.linger",
+ [{datatype, {enum, [true, false]}}]}.
+
+{mapping, "mqtt.tcp_listen_options.linger.timeout", "rabbitmq_mqtt.tcp_listen_options.linger",
+ [{datatype, integer}]}.
+
+{translation, "rabbitmq_mqtt.tcp_listen_options.linger",
+fun(Conf) ->
+ LingerOn = cuttlefish:conf_get("mqtt.tcp_listen_options.linger.on", Conf, false),
+ LingerTimeout = cuttlefish:conf_get("mqtt.tcp_listen_options.linger.timeout", Conf, 0),
+ {LingerOn, LingerTimeout}
+end}.
diff --git a/test/config_schema_SUITE_data/snippets.config b/test/config_schema_SUITE_data/snippets.config
index 22c9f2b7cd..abfc28441e 100644
--- a/test/config_schema_SUITE_data/snippets.config
+++ b/test/config_schema_SUITE_data/snippets.config
@@ -710,5 +710,23 @@ rabbitmq_auth_backend_http.resource_path = http://some-server/auth/resource",
[{user_path, "http://some-server/auth/user"},
{vhost_path, "http://some-server/auth/vhost"},
{resource_path, "http://some-server/auth/resource"}]}],
-[rabbitmq_auth_backend_http]}
+[rabbitmq_auth_backend_http]},
+{70,
+"tcp_listen_options.linger.on = true
+tcp_listen_options.linger.timeout = 100",
+[{rabbit, [{tcp_listen_options, [{linger, {true, 100}}]}]}],
+[]},
+{72,
+"tcp_listen_options.linger.on = false
+tcp_listen_options.linger.timeout = 100",
+[{rabbit, [{tcp_listen_options, [{linger, {false, 100}}]}]}],
+[]},
+{73,
+"tcp_listen_options.linger.on = true",
+[{rabbit, [{tcp_listen_options, [{linger, {true, 0}}]}]}],
+[]},
+{74,
+"tcp_listen_options.linger.timeout = 100",
+[{rabbit, [{tcp_listen_options, [{linger, {false, 100}}]}]}],
+[]}
].