refactor(client): clean up unused lint warnings in dns module (#2931)
This commit is contained in:
@@ -22,7 +22,7 @@
|
|||||||
//! });
|
//! });
|
||||||
//! ```
|
//! ```
|
||||||
use std::error::Error;
|
use std::error::Error;
|
||||||
use std::net::{Ipv4Addr, Ipv6Addr, SocketAddr};
|
use std::net::{SocketAddr};
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::{fmt, vec};
|
use std::{fmt, vec};
|
||||||
|
|
||||||
@@ -118,48 +118,6 @@ pub(super) struct SocketAddrs {
|
|||||||
iter: vec::IntoIter<SocketAddr>,
|
iter: vec::IntoIter<SocketAddr>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SocketAddrs {
|
|
||||||
pub(super) fn new(addrs: Vec<SocketAddr>) -> Self {
|
|
||||||
SocketAddrs {
|
|
||||||
iter: addrs.into_iter(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
|
||||||
fn filter(self, predicate: impl FnMut(&SocketAddr) -> bool) -> SocketAddrs {
|
|
||||||
SocketAddrs::new(self.iter.filter(predicate).collect())
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(super) fn split_by_preference(
|
|
||||||
self,
|
|
||||||
local_addr_ipv4: Option<Ipv4Addr>,
|
|
||||||
local_addr_ipv6: Option<Ipv6Addr>,
|
|
||||||
) -> (SocketAddrs, SocketAddrs) {
|
|
||||||
match (local_addr_ipv4, local_addr_ipv6) {
|
|
||||||
(Some(_), None) => (self.filter(SocketAddr::is_ipv4), SocketAddrs::new(vec![])),
|
|
||||||
(None, Some(_)) => (self.filter(SocketAddr::is_ipv6), SocketAddrs::new(vec![])),
|
|
||||||
_ => {
|
|
||||||
let preferring_v6 = self
|
|
||||||
.iter
|
|
||||||
.as_slice()
|
|
||||||
.first()
|
|
||||||
.map(SocketAddr::is_ipv6)
|
|
||||||
.unwrap_or(false);
|
|
||||||
|
|
||||||
let (preferred, fallback) = self
|
|
||||||
.iter
|
|
||||||
.partition::<Vec<_>, _>(|addr| addr.is_ipv6() == preferring_v6);
|
|
||||||
|
|
||||||
(SocketAddrs::new(preferred), SocketAddrs::new(fallback))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(super) fn is_empty(&self) -> bool {
|
|
||||||
self.iter.as_slice().is_empty()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Iterator for SocketAddrs {
|
impl Iterator for SocketAddrs {
|
||||||
type Item = SocketAddr;
|
type Item = SocketAddr;
|
||||||
#[inline]
|
#[inline]
|
||||||
@@ -270,57 +228,6 @@ mod sealed {
|
|||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
use std::net::{Ipv4Addr, Ipv6Addr};
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_ip_addrs_split_by_preference() {
|
|
||||||
let ip_v4 = Ipv4Addr::new(127, 0, 0, 1);
|
|
||||||
let ip_v6 = Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1);
|
|
||||||
let v4_addr = (ip_v4, 80).into();
|
|
||||||
let v6_addr = (ip_v6, 80).into();
|
|
||||||
|
|
||||||
let (mut preferred, mut fallback) = SocketAddrs {
|
|
||||||
iter: vec![v4_addr, v6_addr].into_iter(),
|
|
||||||
}
|
|
||||||
.split_by_preference(None, None);
|
|
||||||
assert!(preferred.next().unwrap().is_ipv4());
|
|
||||||
assert!(fallback.next().unwrap().is_ipv6());
|
|
||||||
|
|
||||||
let (mut preferred, mut fallback) = SocketAddrs {
|
|
||||||
iter: vec![v6_addr, v4_addr].into_iter(),
|
|
||||||
}
|
|
||||||
.split_by_preference(None, None);
|
|
||||||
assert!(preferred.next().unwrap().is_ipv6());
|
|
||||||
assert!(fallback.next().unwrap().is_ipv4());
|
|
||||||
|
|
||||||
let (mut preferred, mut fallback) = SocketAddrs {
|
|
||||||
iter: vec![v4_addr, v6_addr].into_iter(),
|
|
||||||
}
|
|
||||||
.split_by_preference(Some(ip_v4), Some(ip_v6));
|
|
||||||
assert!(preferred.next().unwrap().is_ipv4());
|
|
||||||
assert!(fallback.next().unwrap().is_ipv6());
|
|
||||||
|
|
||||||
let (mut preferred, mut fallback) = SocketAddrs {
|
|
||||||
iter: vec![v6_addr, v4_addr].into_iter(),
|
|
||||||
}
|
|
||||||
.split_by_preference(Some(ip_v4), Some(ip_v6));
|
|
||||||
assert!(preferred.next().unwrap().is_ipv6());
|
|
||||||
assert!(fallback.next().unwrap().is_ipv4());
|
|
||||||
|
|
||||||
let (mut preferred, fallback) = SocketAddrs {
|
|
||||||
iter: vec![v4_addr, v6_addr].into_iter(),
|
|
||||||
}
|
|
||||||
.split_by_preference(Some(ip_v4), None);
|
|
||||||
assert!(preferred.next().unwrap().is_ipv4());
|
|
||||||
assert!(fallback.is_empty());
|
|
||||||
|
|
||||||
let (mut preferred, fallback) = SocketAddrs {
|
|
||||||
iter: vec![v4_addr, v6_addr].into_iter(),
|
|
||||||
}
|
|
||||||
.split_by_preference(None, Some(ip_v6));
|
|
||||||
assert!(preferred.next().unwrap().is_ipv6());
|
|
||||||
assert!(fallback.is_empty());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_name_from_str() {
|
fn test_name_from_str() {
|
||||||
|
|||||||
Reference in New Issue
Block a user