From cefbfc4554cc112a344b43cce4d678dc871ab8dd Mon Sep 17 00:00:00 2001 From: Jean-Sebastien Pedron Date: Mon, 24 Nov 2014 12:25:34 +0100 Subject: Restore the "x-dead-letter-exchange" check lost in changeset 12133 --- src/rabbit_amqqueue.erl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 2e5a5e8c..38c5c855 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -466,6 +466,7 @@ check_arguments(QueueName, Args, Validators) -> declare_args() -> [{<<"x-expires">>, fun check_expires_arg/2}, {<<"x-message-ttl">>, fun check_message_ttl_arg/2}, + {<<"x-dead-letter-exchange">>, fun check_string_arg/2}, {<<"x-dead-letter-routing-key">>, fun check_dlxrk_arg/2}, {<<"x-max-length">>, fun check_non_neg_int_arg/2}, {<<"x-max-length-bytes">>, fun check_non_neg_int_arg/2}]. @@ -473,6 +474,9 @@ declare_args() -> consume_args() -> [{<<"x-priority">>, fun check_int_arg/2}, {<<"x-cancel-on-ha-failover">>, fun check_bool_arg/2}]. +check_string_arg({longstr, _}, _) -> ok; +check_string_arg({Type, _}, _) -> {error, {unacceptable_type, Type}}. + check_int_arg({Type, _}, _) -> case lists:member(Type, ?INTEGER_ARG_TYPES) of true -> ok; -- cgit v1.2.1 From a1cbfb003e2954db2079580ea196f298d30b3807 Mon Sep 17 00:00:00 2001 From: Jean-Sebastien Pedron Date: Mon, 24 Nov 2014 17:17:35 +0100 Subject: Add a comment so we remember x-dead-letter-exchange was already verified While here, rename the check function to a more sensible name. --- src/rabbit_amqqueue.erl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index 38c5c855..0dfca854 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -466,7 +466,7 @@ check_arguments(QueueName, Args, Validators) -> declare_args() -> [{<<"x-expires">>, fun check_expires_arg/2}, {<<"x-message-ttl">>, fun check_message_ttl_arg/2}, - {<<"x-dead-letter-exchange">>, fun check_string_arg/2}, + {<<"x-dead-letter-exchange">>, fun check_dlxname_arg/2}, {<<"x-dead-letter-routing-key">>, fun check_dlxrk_arg/2}, {<<"x-max-length">>, fun check_non_neg_int_arg/2}, {<<"x-max-length-bytes">>, fun check_non_neg_int_arg/2}]. @@ -474,9 +474,6 @@ declare_args() -> consume_args() -> [{<<"x-priority">>, fun check_int_arg/2}, {<<"x-cancel-on-ha-failover">>, fun check_bool_arg/2}]. -check_string_arg({longstr, _}, _) -> ok; -check_string_arg({Type, _}, _) -> {error, {unacceptable_type, Type}}. - check_int_arg({Type, _}, _) -> case lists:member(Type, ?INTEGER_ARG_TYPES) of true -> ok; @@ -506,6 +503,11 @@ check_message_ttl_arg({Type, Val}, Args) -> Error -> Error end. +%% Note that the validity of x-dead-letter-exchange is already verified +%% by rabbit_channel's queue.declare handler. +check_dlxname_arg({longstr, _}, _) -> ok; +check_dlxname_arg({Type, _}, _) -> {error, {unacceptable_type, Type}}. + check_dlxrk_arg({longstr, _}, Args) -> case rabbit_misc:table_lookup(Args, <<"x-dead-letter-exchange">>) of undefined -> {error, routing_key_but_no_dlx_defined}; -- cgit v1.2.1