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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
pub const CONNECTION_PREFIX: [u8; 6] = [b'P', b'R', b'O', b'X', b'Y', b' '];
pub const CRLF: [u8; 2] = [0x0D, 0x0A];
pub const CRLF_STR: &str = "\x0D\x0A";
pub const TCP4: [u8; 4] = [b'T', b'C', b'P', b'4'];
pub const TCP4_STR: &str = "TCP4";
pub const TCP6: [u8; 4] = [b'T', b'C', b'P', b'6'];
pub const TCP6_STR: &str = "TCP6";
pub const UNKNOWN: [u8; 7] = [b'U', b'N', b'K', b'N', b'O', b'W', b'N'];
pub const UNKNOWN_STR: &str = "UNKNOWN";
pub const UNKNOWN_PROXY_HEADER: [u8; 15] = [
b'P', b'R', b'O', b'X', b'Y', b' ', b'U', b'N', b'K', b'N', b'O', b'W', b'N', 0x0D, 0x0A,
];
#[allow(dead_code)]
#[derive(Debug, PartialEq, Eq, Hash, Clone, Copy)]
pub enum ProxyAddressFamily {
Unknown,
IPv4,
IPv6,
}
impl ProxyAddressFamily {
pub fn min_length(self) -> usize {
match self {
ProxyAddressFamily::Unknown => 0,
ProxyAddressFamily::IPv4 => 7,
ProxyAddressFamily::IPv6 => 3,
}
}
}