diff options
| author | Rob Harrop <rharrop@vmware.com> | 2010-08-18 14:46:38 +0100 |
|---|---|---|
| committer | Rob Harrop <rharrop@vmware.com> | 2010-08-18 14:46:38 +0100 |
| commit | 200359bf5a66a9129c0d78513e0b22b06f0d2273 (patch) | |
| tree | 490dd4f4a2d85d3d5d5247a992663392b53945f2 | |
| parent | 29a4762324299261b0764aa1e83f6401419fa50d (diff) | |
| download | rabbitmq-server-git-200359bf5a66a9129c0d78513e0b22b06f0d2273.tar.gz | |
added validation for x-message-ttl arg on queue declare
| -rw-r--r-- | src/rabbit_amqqueue.erl | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 2453280e34..20f53ed404 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -57,6 +57,7 @@ -include_lib("stdlib/include/qlc.hrl"). -define(EXPIRES_TYPE, long). +-define(TTL_TYPE, long). %%---------------------------------------------------------------------------- @@ -307,7 +308,8 @@ check_declare_arguments(QueueName, Args) -> precondition_failed, "invalid arg '~s' for ~s: ~w", [Key, rabbit_misc:rs(QueueName), Error]) - end || {Key, Fun} <- [{<<"x-expires">>, fun check_expires_argument/1}]], + end || {Key, Fun} <- [{<<"x-expires">>, fun check_expires_argument/1}, + {<<"x-message-ttl">>, fun check_message_ttl_argument/1}]], ok. check_expires_argument(undefined) -> @@ -320,6 +322,16 @@ check_expires_argument({?EXPIRES_TYPE, _Expires}) -> check_expires_argument(_) -> {error, expires_not_of_type_long}. +check_message_ttl_argument(undefined) -> + ok; +check_message_ttl_argument({?TTL_TYPE, TTL}) + when is_integer(TTL) andalso TTL > 0 -> + ok; +check_message_ttl_argument({?TTL_TYPE, _TTL}) -> + {error, ttl_zero_or_less}; +check_message_ttl_argument(_) -> + {error, ttl_not_of_type_long}. + list(VHostPath) -> mnesia:dirty_match_object( rabbit_queue, |
