mirror of https://github.com/telemt/telemt.git
ME Connectivity: socks-url
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
This commit is contained in:
parent
8b39a4ef6d
commit
6c12af2b94
|
|
@ -101,16 +101,26 @@ fn route_from_egress(egress: Option<UpstreamEgressInfo>) -> Option<String> {
|
|||
parts.push(format!("src={ip}"));
|
||||
Some(format!("direct {}", parts.join(" ")))
|
||||
}
|
||||
UpstreamRouteKind::Socks4 => Some(
|
||||
info.socks_bound_addr
|
||||
.map(|addr| format!("socks4 bnd={addr}"))
|
||||
.unwrap_or_else(|| "socks4".to_string()),
|
||||
),
|
||||
UpstreamRouteKind::Socks5 => Some(
|
||||
info.socks_bound_addr
|
||||
.map(|addr| format!("socks5 bnd={addr}"))
|
||||
.unwrap_or_else(|| "socks5".to_string()),
|
||||
),
|
||||
UpstreamRouteKind::Socks4 => {
|
||||
let route = info
|
||||
.socks_proxy_addr
|
||||
.map(|addr| format!("socks4://{addr}"))
|
||||
.unwrap_or_else(|| "socks4://unknown".to_string());
|
||||
Some(match info.socks_bound_addr {
|
||||
Some(bound) => format!("{route} bnd={bound}"),
|
||||
None => route,
|
||||
})
|
||||
}
|
||||
UpstreamRouteKind::Socks5 => {
|
||||
let route = info
|
||||
.socks_proxy_addr
|
||||
.map(|addr| format!("socks5://{addr}"))
|
||||
.unwrap_or_else(|| "socks5://unknown".to_string());
|
||||
Some(match info.socks_bound_addr {
|
||||
Some(bound) => format!("{route} bnd={bound}"),
|
||||
None => route,
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -164,6 +164,7 @@ pub struct UpstreamEgressInfo {
|
|||
pub local_addr: Option<SocketAddr>,
|
||||
pub direct_bind_ip: Option<IpAddr>,
|
||||
pub socks_bound_addr: Option<SocketAddr>,
|
||||
pub socks_proxy_addr: Option<SocketAddr>,
|
||||
}
|
||||
|
||||
// ============= Upstream Manager =============
|
||||
|
|
@ -523,6 +524,7 @@ impl UpstreamManager {
|
|||
local_addr,
|
||||
direct_bind_ip: bind_ip,
|
||||
socks_bound_addr: None,
|
||||
socks_proxy_addr: None,
|
||||
},
|
||||
))
|
||||
},
|
||||
|
|
@ -593,6 +595,7 @@ impl UpstreamManager {
|
|||
}
|
||||
};
|
||||
let local_addr = stream.local_addr().ok();
|
||||
let socks_proxy_addr = stream.peer_addr().ok();
|
||||
Ok((
|
||||
stream,
|
||||
UpstreamEgressInfo {
|
||||
|
|
@ -600,6 +603,7 @@ impl UpstreamManager {
|
|||
local_addr,
|
||||
direct_bind_ip: None,
|
||||
socks_bound_addr: Some(bound.addr),
|
||||
socks_proxy_addr,
|
||||
},
|
||||
))
|
||||
},
|
||||
|
|
@ -672,6 +676,7 @@ impl UpstreamManager {
|
|||
}
|
||||
};
|
||||
let local_addr = stream.local_addr().ok();
|
||||
let socks_proxy_addr = stream.peer_addr().ok();
|
||||
Ok((
|
||||
stream,
|
||||
UpstreamEgressInfo {
|
||||
|
|
@ -679,6 +684,7 @@ impl UpstreamManager {
|
|||
local_addr,
|
||||
direct_bind_ip: None,
|
||||
socks_bound_addr: Some(bound.addr),
|
||||
socks_proxy_addr,
|
||||
},
|
||||
))
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue