@@ -183,6 +183,7 @@ pub struct Config {
183183 pub ( crate ) host : Vec < Host > ,
184184 pub ( crate ) port : Vec < u16 > ,
185185 pub ( crate ) connect_timeout : Option < Duration > ,
186+ pub ( crate ) user_timeout : Option < Duration > ,
186187 pub ( crate ) keepalives : bool ,
187188 pub ( crate ) keepalive_config : KeepaliveConfig ,
188189 pub ( crate ) target_session_attrs : TargetSessionAttrs ,
@@ -217,6 +218,7 @@ impl Config {
217218 host : vec ! [ ] ,
218219 port : vec ! [ ] ,
219220 connect_timeout : None ,
221+ user_timeout : None ,
220222 keepalives : true ,
221223 keepalive_config,
222224 target_session_attrs : TargetSessionAttrs :: Any ,
@@ -407,6 +409,18 @@ impl Config {
407409 self . connect_timeout . as_ref ( )
408410 }
409411
412+ /// Sets the TCP user timeout.
413+ pub fn user_timeout ( & mut self , user_timeout : Duration ) -> & mut Config {
414+ self . user_timeout = Some ( user_timeout) ;
415+ self
416+ }
417+
418+ /// Gets the TCP user timeout, if one has been set with the
419+ /// `user_timeout` method.
420+ pub fn get_user_timeout ( & self ) -> Option < & Duration > {
421+ self . user_timeout . as_ref ( )
422+ }
423+
410424 /// Controls the use of TCP keepalive.
411425 ///
412426 /// This is ignored for Unix domain socket connections. Defaults to `true`.
0 commit comments