summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon MacMullen <simon@rabbitmq.com>2013-09-09 17:06:40 +0100
committerSimon MacMullen <simon@rabbitmq.com>2013-09-09 17:06:40 +0100
commitc9fb26e4bf615fb48814af971ae975747b141185 (patch)
treeb3a436f30e942eb7b84c4a92e19e2eb4ea207707
parent785698efa0498734fe68ee1209ab626b990875d5 (diff)
downloadrabbitmq-server-git-c9fb26e4bf615fb48814af971ae975747b141185.tar.gz
Allow use of the new policies.
-rw-r--r--include/rabbit.hrl3
-rw-r--r--src/rabbit_misc.erl3
-rw-r--r--src/rabbit_policies.erl27
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]}.
+
+