cfx_config/
rpc_server_config.rs

1use std::net::{Ipv4Addr, SocketAddr, SocketAddrV4};
2
3#[derive(Debug, PartialEq)]
4pub struct HttpConfiguration {
5    pub enabled: bool,
6    pub address: SocketAddr,
7    pub keep_alive: bool,
8    // If it's Some, we will manually set the number of threads of HTTP RPC
9    // server
10    pub threads: Option<usize>,
11    pub cors: Option<String>,
12}
13
14impl HttpConfiguration {
15    pub fn new(
16        ip: Option<(u8, u8, u8, u8)>, port: Option<u16>, keep_alive: bool,
17        threads: Option<usize>, cors: Option<String>,
18    ) -> Self {
19        let ipv4 = match ip {
20            Some(ip) => Ipv4Addr::new(ip.0, ip.1, ip.2, ip.3),
21            None => Ipv4Addr::new(0, 0, 0, 0),
22        };
23        HttpConfiguration {
24            enabled: port.is_some(),
25            address: SocketAddr::V4(SocketAddrV4::new(ipv4, port.unwrap_or(0))),
26            keep_alive,
27            threads,
28            cors,
29        }
30    }
31}
32
33#[derive(Debug, PartialEq)]
34pub struct WsConfiguration {
35    pub enabled: bool,
36    pub address: SocketAddr,
37    pub max_payload_bytes: usize,
38    pub cors: Option<String>,
39}
40
41impl WsConfiguration {
42    pub fn new(
43        ip: Option<(u8, u8, u8, u8)>, port: Option<u16>,
44        max_payload_bytes: usize, cors: Option<String>,
45    ) -> Self {
46        let ipv4 = match ip {
47            Some(ip) => Ipv4Addr::new(ip.0, ip.1, ip.2, ip.3),
48            None => Ipv4Addr::new(0, 0, 0, 0),
49        };
50        WsConfiguration {
51            enabled: port.is_some(),
52            address: SocketAddr::V4(SocketAddrV4::new(ipv4, port.unwrap_or(0))),
53            max_payload_bytes,
54            cors,
55        }
56    }
57}