feat(client): add keep_alive_timeout to Client
This commit is contained in:
		| @@ -145,6 +145,8 @@ pub struct Config<C> { | ||||
|     connect_timeout: Duration, | ||||
|     connector: C, | ||||
|     keep_alive: bool, | ||||
|     keep_alive_timeout: Option<Duration>, | ||||
|     //TODO: make use of max_idle config | ||||
|     max_idle: usize, | ||||
|     max_sockets: usize, | ||||
| } | ||||
| @@ -157,6 +159,7 @@ impl<C> Config<C> where C: Connect + Send + 'static { | ||||
|             connect_timeout: self.connect_timeout, | ||||
|             connector: val, | ||||
|             keep_alive: self.keep_alive, | ||||
|             keep_alive_timeout: Some(Duration::from_secs(60 * 2)), | ||||
|             max_idle: self.max_idle, | ||||
|             max_sockets: self.max_sockets, | ||||
|         } | ||||
| @@ -171,6 +174,17 @@ impl<C> Config<C> where C: Connect + Send + 'static { | ||||
|         self | ||||
|     } | ||||
|  | ||||
|     /// Set an optional timeout for idle sockets being kept-alive. | ||||
|     /// | ||||
|     /// Pass `None` to disable timeout. | ||||
|     /// | ||||
|     /// Default is 2 minutes. | ||||
|     #[inline] | ||||
|     pub fn keep_alive_timeout(mut self, val: Option<Duration>) -> Config<C> { | ||||
|         self.keep_alive_timeout = val; | ||||
|         self | ||||
|     } | ||||
|  | ||||
|     /// Set the max table size allocated for holding on to live sockets. | ||||
|     /// | ||||
|     /// Default is 1024. | ||||
| @@ -202,6 +216,7 @@ impl Default for Config<DefaultConnector> { | ||||
|             connect_timeout: Duration::from_secs(10), | ||||
|             connector: DefaultConnector::default(), | ||||
|             keep_alive: true, | ||||
|             keep_alive_timeout: Some(Duration::from_secs(60 * 2)), | ||||
|             max_idle: 5, | ||||
|             max_sockets: 1024, | ||||
|         } | ||||
|   | ||||
| @@ -40,7 +40,7 @@ impl<A: Accept, H: HandlerFactory<A::Output>> fmt::Debug for ServerLoop<A, H> { | ||||
| pub struct Server<T: Accept> { | ||||
|     listener: T, | ||||
|     keep_alive: bool, | ||||
|     idle_timeout: Duration, | ||||
|     idle_timeout: Option<Duration>, | ||||
|     max_sockets: usize, | ||||
| } | ||||
|  | ||||
| @@ -51,7 +51,7 @@ impl<T> Server<T> where T: Accept, T::Output: Transport { | ||||
|         Server { | ||||
|             listener: listener, | ||||
|             keep_alive: true, | ||||
|             idle_timeout: Duration::from_secs(10), | ||||
|             idle_timeout: Some(Duration::from_secs(10)), | ||||
|             max_sockets: 4096, | ||||
|         } | ||||
|     } | ||||
| @@ -67,7 +67,7 @@ impl<T> Server<T> where T: Accept, T::Output: Transport { | ||||
|     /// Sets how long an idle connection will be kept before closing. | ||||
|     /// | ||||
|     /// Default is 10 seconds. | ||||
|     pub fn idle_timeout(mut self, val: Duration) -> Server<T> { | ||||
|     pub fn idle_timeout(mut self, val: Option<Duration>) -> Server<T> { | ||||
|         self.idle_timeout = val; | ||||
|         self | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user