@@ -1751,10 +1751,26 @@ persist_static_configuration() ->
1751
1751
[classic_queue_index_v2_segment_entry_count ,
1752
1752
classic_queue_store_v2_max_cache_size ,
1753
1753
classic_queue_store_v2_check_crc32 ,
1754
- incoming_message_interceptors ,
1755
- credit_flow_default_credit
1754
+ incoming_message_interceptors
1756
1755
]),
1757
1756
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
+
1758
1774
% % Disallow 0 as it means unlimited:
1759
1775
% % "If this field is zero or unset, there is no maximum
1760
1776
% % size imposed by the link endpoint." [AMQP 1.0 §2.7.3]
0 commit comments