refactor: simplify v2 PROXY header building, add Default for V2Builder

This commit is contained in:
ivulit 2026-02-26 13:01:08 +03:00
parent eb9e528c79
commit 47f4bd24ef
No known key found for this signature in database
2 changed files with 7 additions and 8 deletions

View File

@ -125,14 +125,7 @@ where
version => {
let header = if let Ok(local_addr) = stream.local_addr() {
match version {
2 => match (peer, local_addr) {
(SocketAddr::V4(src), SocketAddr::V4(dst)) =>
ProxyProtocolV2Builder::new().with_addrs(src.into(), dst.into()).build(),
(SocketAddr::V6(src), SocketAddr::V6(dst)) =>
ProxyProtocolV2Builder::new().with_addrs(src.into(), dst.into()).build(),
_ =>
ProxyProtocolV2Builder::new().build(),
},
2 => ProxyProtocolV2Builder::new().with_addrs(peer, local_addr).build(),
_ => match (peer, local_addr) {
(SocketAddr::V4(src), SocketAddr::V4(dst)) =>
ProxyProtocolV1Builder::new().tcp4(src.into(), dst.into()).build(),

View File

@ -291,6 +291,12 @@ pub struct ProxyProtocolV2Builder {
dst: Option<SocketAddr>,
}
impl Default for ProxyProtocolV2Builder {
fn default() -> Self {
Self::new()
}
}
impl ProxyProtocolV2Builder {
pub fn new() -> Self {
Self { src: None, dst: None }