1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum UdpError {
5 #[error("association limit exceeded")]
6 AssociationLimitExceeded,
7 #[error("per-listener association limit exceeded")]
8 ListenerAssociationLimitExceeded,
9 #[error("target flow limit exceeded")]
10 TargetFlowLimitExceeded,
11 #[error("datagram too large: {0} > {1}")]
12 DatagramTooLarge(usize, usize),
13 #[error("codec error: {0}")]
14 Codec(#[from] eggress_protocol_socks::socks5::udp_codec::UdpCodecError),
15 #[error("IO error: {0}")]
16 Io(#[from] std::io::Error),
17 #[error("association closed")]
18 AssociationClosed,
19 #[error("client address mismatch")]
20 ClientAddressMismatch,
21 #[error("unresolved target")]
22 UnresolvedTarget,
23 #[error("multicast target not allowed")]
24 MulticastTarget,
25 #[error("broadcast target not allowed")]
26 BroadcastTarget,
27 #[error("unspecified target not allowed")]
28 UnspecifiedTarget,
29 #[error("port zero not allowed")]
30 PortZero,
31 #[error("{0}")]
32 Other(String),
33}