File tree Expand file tree Collapse file tree 2 files changed +11
-1
lines changed
Expand file tree Collapse file tree 2 files changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,10 @@ pub struct Config {
1717 pub postfix_reinject_port_incoming : u16 ,
1818 #[ serde( default = "Config::default_max_message_size" ) ]
1919 pub max_message_size : usize ,
20+ #[ serde( default = "Config::default_max_user_send_per_minute" ) ]
2021 pub max_user_send_per_minute : NonZeroU32 ,
22+ #[ serde( default = "Config::default_max_user_send_burst_size" ) ]
23+ pub max_user_send_burst_size : NonZeroU32 ,
2124 #[ serde( default , deserialize_with = "deserialize_sequence" ) ]
2225 pub passthrough_senders : Vec < String > ,
2326 #[ serde( default , deserialize_with = "deserialize_sequence" ) ]
@@ -94,4 +97,10 @@ impl Config {
9497 const fn default_max_message_size ( ) -> usize {
9598 31457280
9699 }
100+ const fn default_max_user_send_per_minute ( ) -> NonZeroU32 {
101+ NonZeroU32 :: new ( 60 ) . expect ( "60 != 0" )
102+ }
103+ const fn default_max_user_send_burst_size ( ) -> NonZeroU32 {
104+ NonZeroU32 :: new ( 10 ) . expect ( "10 != 0" )
105+ }
97106}
Original file line number Diff line number Diff line change @@ -20,7 +20,8 @@ pub struct OutgoingBeforeQueueHandler {
2020
2121impl OutgoingBeforeQueueHandler {
2222 pub fn new ( config : Config ) -> Self {
23- let quota = Quota :: per_minute ( config. max_user_send_per_minute ) ;
23+ let quota = Quota :: per_minute ( config. max_user_send_per_minute )
24+ . allow_burst ( config. max_user_send_burst_size ) ;
2425 Self {
2526 config : Arc :: new ( config) ,
2627 send_rate_limiter : RateLimiter :: keyed ( quota) ,
You can’t perform that action at this time.
0 commit comments