diff options
| author | Simon MacMullen <simon@rabbitmq.com> | 2013-09-09 17:06:40 +0100 |
|---|---|---|
| committer | Simon MacMullen <simon@rabbitmq.com> | 2013-09-09 17:06:40 +0100 |
| commit | c9fb26e4bf615fb48814af971ae975747b141185 (patch) | |
| tree | b3a436f30e942eb7b84c4a92e19e2eb4ea207707 | |
| parent | 785698efa0498734fe68ee1209ab626b990875d5 (diff) | |
| download | rabbitmq-server-git-c9fb26e4bf615fb48814af971ae975747b141185.tar.gz | |
Allow use of the new policies.
| -rw-r--r-- | include/rabbit.hrl | 3 | ||||
| -rw-r--r-- | src/rabbit_misc.erl | 3 | ||||
| -rw-r--r-- | src/rabbit_policies.erl | 27 |
3 files changed, 28 insertions, 5 deletions
diff --git a/include/rabbit.hrl b/include/rabbit.hrl index a764855ed8..bd7a0eedf5 100644 --- a/include/rabbit.hrl +++ b/include/rabbit.hrl @@ -105,6 +105,9 @@ -define(DESIRED_HIBERNATE, 10000). -define(CREDIT_DISC_BOUND, {2000, 500}). +%% This is dictated by `erlang:send_after' on which we depend to implement TTL. +-define(MAX_EXPIRY_TIMER, 4294967295). + -define(INVALID_HEADERS_KEY, <<"x-invalid-headers">>). -define(ROUTING_HEADERS, [<<"CC">>, <<"BCC">>]). -define(DELETED_HEADER, <<"BCC">>). diff --git a/src/rabbit_misc.erl b/src/rabbit_misc.erl index 8cc8326580..00c4eaf3df 100644 --- a/src/rabbit_misc.erl +++ b/src/rabbit_misc.erl @@ -76,9 +76,6 @@ R =:= noproc; R =:= noconnection; R =:= nodedown; R =:= normal; R =:= shutdown). -%% This is dictated by `erlang:send_after' on which we depend to implement TTL. --define(MAX_EXPIRY_TIMER, 4294967295). - %%---------------------------------------------------------------------------- -ifdef(use_specs). diff --git a/src/rabbit_policies.erl b/src/rabbit_policies.erl index ce763777c7..fec83eefcf 100644 --- a/src/rabbit_policies.erl +++ b/src/rabbit_policies.erl @@ -31,7 +31,10 @@ register() -> [rabbit_registry:register(Class, Name, ?MODULE) || {Class, Name} <- [{policy_validator, <<"alternate-exchange">>}, {policy_validator, <<"dead-letter-exchange">>}, - {policy_validator, <<"dead-letter-routing-key">>}]], + {policy_validator, <<"dead-letter-routing-key">>}, + {policy_validator, <<"message-ttl">>}, + {policy_validator, <<"expires">>}, + {policy_validator, <<"max-length">>}]], ok. validate_policy(Terms) -> @@ -55,4 +58,24 @@ validate_policy0(<<"dead-letter-routing-key">>, Value) when is_binary(Value) -> ok; validate_policy0(<<"dead-letter-routing-key">>, Value) -> - {error, "~p is not a valid dead letter routing key", [Value]}. + {error, "~p is not a valid dead letter routing key", [Value]}; + +validate_policy0(<<"message-ttl">>, Value) + when is_integer(Value), Value >= 0, Value =< ?MAX_EXPIRY_TIMER -> + ok; +validate_policy0(<<"message-ttl">>, Value) -> + {error, "~p is not a valid message TTL", [Value]}; + +validate_policy0(<<"expires">>, Value) + when is_integer(Value), Value >= 0, Value =< ?MAX_EXPIRY_TIMER -> + ok; +validate_policy0(<<"expires">>, Value) -> + {error, "~p is not a valid queue expiry", [Value]}; + +validate_policy0(<<"max-length">>, Value) + when is_integer(Value), Value >= 0 -> + ok; +validate_policy0(<<"max-length">>, Value) -> + {error, "~p is not a valid maximum length", [Value]}. + + |
