@@ -1751,10 +1751,26 @@ persist_static_configuration() ->
17511751 [classic_queue_index_v2_segment_entry_count ,
17521752 classic_queue_store_v2_max_cache_size ,
17531753 classic_queue_store_v2_check_crc32 ,
1754- incoming_message_interceptors ,
1755- credit_flow_default_credit
1754+ incoming_message_interceptors
17561755 ]),
17571756
1757+ % % Disallow the following two cases:
1758+ % % 1. Negative values
1759+ % % 2. MoreCreditAfter greater than InitialCredit
1760+ CreditFlowDefaultCredit = case application :get_env (? MODULE , credit_flow_default_credit ) of
1761+ {ok , {InitialCredit , MoreCreditAfter }}
1762+ when is_integer (InitialCredit ) andalso
1763+ is_integer (MoreCreditAfter ) andalso
1764+ InitialCredit > 0 andalso
1765+ MoreCreditAfter > 0 andalso
1766+ MoreCreditAfter < InitialCredit ->
1767+ {InitialCredit , MoreCreditAfter };
1768+ Other ->
1769+ rabbit_log :error (" Refusing to boot due to an invalid value of 'rabbit.credit_flow_default_credit'" ),
1770+ throw ({error , {invalid_credit_flow_default_credit_value , Other }})
1771+ end ,
1772+ ok = persistent_term :put (credit_flow_default_credit , CreditFlowDefaultCredit ),
1773+
17581774 % % Disallow 0 as it means unlimited:
17591775 % % "If this field is zero or unset, there is no maximum
17601776 % % size imposed by the link endpoint." [AMQP 1.0 §2.7.3]
0 commit comments