Add server config option for controlling connection sleep duration

pull/146/head
Chip Senkbeil 2 years ago
parent e81edb75f6
commit 1ef3a8ac80
No known key found for this signature in database
GPG Key ID: 35EF1F8EC72A4131

@ -203,6 +203,7 @@ where
.state(Arc::downgrade(&state))
.transport(transport)
.shutdown_timer(Arc::downgrade(&timer))
.sleep_duration(config.connection_sleep)
.verifier(Arc::downgrade(&verifier))
.spawn();
@ -305,6 +306,7 @@ mod tests {
let server = make_test_server(ServerConfig {
shutdown: Shutdown::Lonely(Duration::from_millis(100)),
..Default::default()
})
.start(listener)
.expect("Failed to start server");
@ -329,6 +331,7 @@ mod tests {
let server = make_test_server(ServerConfig {
shutdown: Shutdown::Lonely(Duration::from_millis(100)),
..Default::default()
})
.start(listener)
.expect("Failed to start server");
@ -355,6 +358,7 @@ mod tests {
let server = make_test_server(ServerConfig {
shutdown: Shutdown::Lonely(Duration::from_millis(100)),
..Default::default()
})
.start(listener)
.expect("Failed to start server");
@ -377,6 +381,7 @@ mod tests {
let server = make_test_server(ServerConfig {
shutdown: Shutdown::After(Duration::from_millis(100)),
..Default::default()
})
.start(listener)
.expect("Failed to start server");
@ -393,6 +398,7 @@ mod tests {
let server = make_test_server(ServerConfig {
shutdown: Shutdown::After(Duration::from_millis(100)),
..Default::default()
})
.start(listener)
.expect("Failed to start server");
@ -409,6 +415,7 @@ mod tests {
let server = make_test_server(ServerConfig {
shutdown: Shutdown::Never,
..Default::default()
})
.start(listener)
.expect("Failed to start server");

@ -2,13 +2,27 @@ use derive_more::{Display, Error};
use serde::{Deserialize, Serialize};
use std::{num::ParseFloatError, str::FromStr, time::Duration};
const DEFAULT_CONNECTION_SLEEP: Duration = Duration::from_millis(50);
/// Represents a general-purpose set of properties tied with a server instance
#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct ServerConfig {
/// Time to wait inbetween connection read/write when nothing was read or written on last pass
pub connection_sleep: Duration,
/// Rules for how a server will shutdown automatically
pub shutdown: Shutdown,
}
impl Default for ServerConfig {
fn default() -> Self {
Self {
connection_sleep: DEFAULT_CONNECTION_SLEEP,
shutdown: Default::default(),
}
}
}
/// Rules for how a server will shut itself down automatically
#[derive(Copy, Clone, Debug, Display, PartialEq, Eq, Serialize, Deserialize)]
pub enum Shutdown {

Loading…
Cancel
Save