mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-16 02:45:41 +00:00
fix: filter overlapped proxy cidrs in ProxyCidrsMonitor (#2079)
* feat(route): add async methods to list proxy CIDRs for IPv4 and IPv6 * refactor(ProxyCidrsMonitor): get proxy cidrs from list_proxy_cidrs
This commit is contained in:
@@ -3500,6 +3500,26 @@ impl Route for PeerRoute {
|
||||
routes
|
||||
}
|
||||
|
||||
async fn list_proxy_cidrs(&self) -> BTreeSet<Ipv4Cidr> {
|
||||
self.service_impl
|
||||
.route_table
|
||||
.cidr_peer_id_map
|
||||
.load()
|
||||
.iter()
|
||||
.map(|(cidr, _)| *cidr)
|
||||
.collect()
|
||||
}
|
||||
|
||||
async fn list_proxy_cidrs_v6(&self) -> BTreeSet<Ipv6Cidr> {
|
||||
self.service_impl
|
||||
.route_table
|
||||
.cidr_v6_peer_id_map
|
||||
.load()
|
||||
.iter()
|
||||
.map(|(cidr, _)| *cidr)
|
||||
.collect()
|
||||
}
|
||||
|
||||
async fn get_peer_id_by_ipv4(&self, ipv4_addr: &Ipv4Addr) -> Option<PeerId> {
|
||||
let route_table = &self.service_impl.route_table;
|
||||
if let Some(p) = route_table.ipv4_peer_id_map.get(ipv4_addr) {
|
||||
|
||||
Reference in New Issue
Block a user