1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use std::net::IpAddr;
use types::tcp_state::TcpState;
#[derive(Clone, Debug)]
pub struct SocketInfo {
pub protocol_socket_info: ProtocolSocketInfo,
pub associated_pids: Vec<u32>,
#[cfg(target_os = "linux")]
pub inode: u32,
}
#[derive(Clone, Debug)]
pub enum ProtocolSocketInfo {
Tcp(TcpSocketInfo),
Udp(UdpSocketInfo),
}
#[derive(Clone, Debug)]
pub struct TcpSocketInfo {
pub local_addr: IpAddr,
pub local_port: u16,
pub remote_addr: IpAddr,
pub remote_port: u16,
pub state: TcpState,
}
#[derive(Clone, Debug)]
pub struct UdpSocketInfo {
pub local_addr: IpAddr,
pub local_port: u16,
}