Skip to main content

camel_component_http/
config.rs

1#[derive(Debug, Clone, PartialEq)]
2pub struct HttpConfig {
3    pub connect_timeout_ms: u64,
4    pub response_timeout_ms: u64,
5    pub max_connections: usize,
6    pub max_body_size: usize,
7    pub max_request_body: usize,
8    pub allow_private_ips: bool,
9}
10
11impl Default for HttpConfig {
12    fn default() -> Self {
13        Self {
14            connect_timeout_ms: 5_000,
15            response_timeout_ms: 30_000,
16            max_connections: 100,
17            max_body_size: 10_485_760,
18            max_request_body: 2_097_152,
19            allow_private_ips: false,
20        }
21    }
22}
23
24impl HttpConfig {
25    pub fn with_connect_timeout_ms(mut self, ms: u64) -> Self {
26        self.connect_timeout_ms = ms;
27        self
28    }
29    pub fn with_response_timeout_ms(mut self, ms: u64) -> Self {
30        self.response_timeout_ms = ms;
31        self
32    }
33    pub fn with_max_connections(mut self, n: usize) -> Self {
34        self.max_connections = n;
35        self
36    }
37    pub fn with_max_body_size(mut self, n: usize) -> Self {
38        self.max_body_size = n;
39        self
40    }
41    pub fn with_max_request_body(mut self, n: usize) -> Self {
42        self.max_request_body = n;
43        self
44    }
45    pub fn with_allow_private_ips(mut self, allow: bool) -> Self {
46        self.allow_private_ips = allow;
47        self
48    }
49}
50
51#[cfg(test)]
52mod tests {
53    use super::*;
54
55    #[test]
56    fn test_http_config_defaults() {
57        let cfg = HttpConfig::default();
58        assert_eq!(cfg.connect_timeout_ms, 5_000);
59        assert_eq!(cfg.response_timeout_ms, 30_000);
60        assert_eq!(cfg.max_connections, 100);
61        assert_eq!(cfg.max_body_size, 10_485_760);
62        assert_eq!(cfg.max_request_body, 2_097_152);
63        assert!(!cfg.allow_private_ips);
64    }
65
66    #[test]
67    fn test_http_config_builder() {
68        let cfg = HttpConfig::default()
69            .with_connect_timeout_ms(1_000)
70            .with_allow_private_ips(true);
71        assert_eq!(cfg.connect_timeout_ms, 1_000);
72        assert!(cfg.allow_private_ips);
73        assert_eq!(cfg.response_timeout_ms, 30_000); // unchanged
74    }
75}