Skip to main content

ash_rpc/transports/
security.rs

1//! Security configuration
2
3use std::time::Duration;
4
5/// Security configuration
6#[derive(Debug, Clone)]
7pub struct SecurityConfig {
8    /// Maximum number of concurrent connections (0 = unlimited)
9    pub max_connections: usize,
10    /// Maximum request size in bytes (0 = unlimited)
11    pub max_request_size: usize,
12    /// Request timeout duration
13    pub request_timeout: Duration,
14    /// Connection idle timeout
15    pub idle_timeout: Duration,
16}
17
18impl Default for SecurityConfig {
19    fn default() -> Self {
20        Self {
21            max_connections: 1000,
22            max_request_size: 1024 * 1024, // 1 MB
23            request_timeout: Duration::from_secs(30),
24            idle_timeout: Duration::from_secs(300), // 5 minutes
25        }
26    }
27}
28
29#[cfg(test)]
30mod tests {
31    use super::*;
32    #[test]
33    fn test_default_security_config() {
34        let config = SecurityConfig::default();
35        assert_eq!(config.max_connections, 1000);
36        assert_eq!(config.max_request_size, 1024 * 1024);
37        assert_eq!(config.request_timeout, Duration::from_secs(30));
38        assert_eq!(config.idle_timeout, Duration::from_secs(300));
39    }
40}