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 => { version => {
let header = if let Ok(local_addr) = stream.local_addr() { let header = if let Ok(local_addr) = stream.local_addr() {
match version { match version {
2 => match (peer, local_addr) { 2 => ProxyProtocolV2Builder::new().with_addrs(peer, local_addr).build(),
(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(),
},
_ => match (peer, local_addr) { _ => match (peer, local_addr) {
(SocketAddr::V4(src), SocketAddr::V4(dst)) => (SocketAddr::V4(src), SocketAddr::V4(dst)) =>
ProxyProtocolV1Builder::new().tcp4(src.into(), dst.into()).build(), ProxyProtocolV1Builder::new().tcp4(src.into(), dst.into()).build(),

View File

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