From 7a6365e2dec20b374bd2e9e31760a46014dc8d21 Mon Sep 17 00:00:00 2001 From: Bruce Guenter Date: Wed, 30 Aug 2023 08:29:39 -0600 Subject: [PATCH] chore: Use `Ipv#Addr` constants (#17627) * chore: Fix a few `const fn` functions * Use `Ipv#Addr` constants instead of hard-coded addresses * Fix IPv6 unspecified => localhost typo * Reflect change to MSRV --- lib/vector-config/tests/integration/smoke.rs | 5 +---- src/config/api.rs | 8 ++++---- src/enrichment_tables/geoip.rs | 2 +- src/sinks/prometheus/exporter.rs | 6 ++---- src/sinks/statsd/config.rs | 2 +- src/sinks/util/service/net/udp.rs | 11 ++--------- src/sinks/util/udp.rs | 2 +- src/sources/splunk_hec/mod.rs | 2 +- src/sources/statsd/mod.rs | 2 +- src/test_util/mod.rs | 4 ++-- 10 files changed, 16 insertions(+), 28 deletions(-) diff --git a/lib/vector-config/tests/integration/smoke.rs b/lib/vector-config/tests/integration/smoke.rs index 6129b2e7581f9..35398ba47cb08 100644 --- a/lib/vector-config/tests/integration/smoke.rs +++ b/lib/vector-config/tests/integration/smoke.rs @@ -349,10 +349,7 @@ const fn default_simple_source_timeout() -> Duration { } fn default_simple_source_listen_addr() -> SocketListenAddr { - SocketListenAddr::SocketAddr(SocketAddr::V4(SocketAddrV4::new( - Ipv4Addr::new(127, 0, 0, 1), - 9200, - ))) + SocketListenAddr::SocketAddr(SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::LOCALHOST, 9200))) } /// A sink for sending events to the `simple` service. diff --git a/src/config/api.rs b/src/config/api.rs index 0429f6be3662c..280851ad249f7 100644 --- a/src/config/api.rs +++ b/src/config/api.rs @@ -39,7 +39,7 @@ const fn default_enabled() -> bool { /// `vector top` will use it to determine which to connect to by default, if no URL /// override is provided. pub fn default_address() -> Option { - Some(SocketAddr::new(Ipv4Addr::new(127, 0, 0, 1).into(), 8686)) + Some(SocketAddr::new(Ipv4Addr::LOCALHOST.into(), 8686)) } /// Default GraphQL API address @@ -107,7 +107,7 @@ fn bool_merge() { #[test] fn bind_merge() { - let address = SocketAddr::new(Ipv4Addr::new(127, 0, 0, 1).into(), 9000); + let address = SocketAddr::new(Ipv4Addr::LOCALHOST.into(), 9000); let mut a = Options { enabled: true, address: Some(address), @@ -129,12 +129,12 @@ fn bind_merge() { #[test] fn bind_conflict() { let mut a = Options { - address: Some(SocketAddr::new(Ipv4Addr::new(127, 0, 0, 1).into(), 9000)), + address: Some(SocketAddr::new(Ipv4Addr::LOCALHOST.into(), 9000)), ..Options::default() }; let b = Options { - address: Some(SocketAddr::new(Ipv4Addr::new(127, 0, 0, 1).into(), 9001)), + address: Some(SocketAddr::new(Ipv4Addr::LOCALHOST.into(), 9001)), ..Options::default() }; diff --git a/src/enrichment_tables/geoip.rs b/src/enrichment_tables/geoip.rs index 569fc124600af..3a46bf17d8fac 100644 --- a/src/enrichment_tables/geoip.rs +++ b/src/enrichment_tables/geoip.rs @@ -114,7 +114,7 @@ impl Geoip { let dbkind = DatabaseKind::from(dbreader.metadata.database_type.as_str()); // Check if we can read database with dummy Ip. - let ip = IpAddr::V4(std::net::Ipv4Addr::new(0, 0, 0, 0)); + let ip = IpAddr::V4(std::net::Ipv4Addr::UNSPECIFIED); let result = match dbkind { DatabaseKind::Asn | DatabaseKind::Isp => dbreader.lookup::(ip).map(|_| ()), DatabaseKind::ConnectionType => dbreader.lookup::(ip).map(|_| ()), diff --git a/src/sinks/prometheus/exporter.rs b/src/sinks/prometheus/exporter.rs index e86a3f2d64b07..5f75b4af34958 100644 --- a/src/sinks/prometheus/exporter.rs +++ b/src/sinks/prometheus/exporter.rs @@ -2,7 +2,7 @@ use std::{ convert::Infallible, hash::Hash, mem::{discriminant, Discriminant}, - net::SocketAddr, + net::{IpAddr, Ipv4Addr, SocketAddr}, sync::{Arc, RwLock}, time::{Duration, Instant}, }; @@ -168,9 +168,7 @@ impl Default for PrometheusExporterConfig { } const fn default_address() -> SocketAddr { - use std::net::{IpAddr, Ipv4Addr}; - - SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 9598) + SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 9598) } const fn default_distributions_as_summaries() -> bool { diff --git a/src/sinks/statsd/config.rs b/src/sinks/statsd/config.rs index 2788291278d07..6e0b88699687a 100644 --- a/src/sinks/statsd/config.rs +++ b/src/sinks/statsd/config.rs @@ -100,7 +100,7 @@ impl Mode { } const fn default_address() -> SocketAddr { - SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8125) + SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), 8125) } impl GenerateConfig for StatsdSinkConfig { diff --git a/src/sinks/util/service/net/udp.rs b/src/sinks/util/service/net/udp.rs index 008e58c30db50..86a4ceaab7f53 100644 --- a/src/sinks/util/service/net/udp.rs +++ b/src/sinks/util/service/net/udp.rs @@ -1,4 +1,4 @@ -use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; +use std::net::SocketAddr; use snafu::ResultExt; use tokio::net::UdpSocket; @@ -59,7 +59,7 @@ impl UdpConnector { .ok_or(NetError::NoAddresses)?; let addr = SocketAddr::new(ip, self.address.port); - let bind_address = find_bind_address(&addr); + let bind_address = crate::sinks::util::udp::find_bind_address(&addr); let socket = UdpSocket::bind(bind_address).await.context(FailedToBind)?; @@ -74,10 +74,3 @@ impl UdpConnector { Ok(socket) } } - -const fn find_bind_address(remote_addr: &SocketAddr) -> SocketAddr { - match remote_addr { - SocketAddr::V4(_) => SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 0), - SocketAddr::V6(_) => SocketAddr::new(IpAddr::V6(Ipv6Addr::UNSPECIFIED), 0), - } -} diff --git a/src/sinks/util/udp.rs b/src/sinks/util/udp.rs index e325024fffbb5..4afc14871a979 100644 --- a/src/sinks/util/udp.rs +++ b/src/sinks/util/udp.rs @@ -248,7 +248,7 @@ async fn udp_send(socket: &mut UdpSocket, buf: &[u8]) -> tokio::io::Result<()> { Ok(()) } -const fn find_bind_address(remote_addr: &SocketAddr) -> SocketAddr { +pub(super) const fn find_bind_address(remote_addr: &SocketAddr) -> SocketAddr { match remote_addr { SocketAddr::V4(_) => SocketAddr::new(IpAddr::V4(Ipv4Addr::UNSPECIFIED), 0), SocketAddr::V6(_) => SocketAddr::new(IpAddr::V6(Ipv6Addr::UNSPECIFIED), 0), diff --git a/src/sources/splunk_hec/mod.rs b/src/sources/splunk_hec/mod.rs index 92501b1054752..41a15547c9c6f 100644 --- a/src/sources/splunk_hec/mod.rs +++ b/src/sources/splunk_hec/mod.rs @@ -121,7 +121,7 @@ impl Default for SplunkConfig { } fn default_socket_address() -> SocketAddr { - SocketAddr::new(Ipv4Addr::new(0, 0, 0, 0).into(), 8088) + SocketAddr::new(Ipv4Addr::UNSPECIFIED.into(), 8088) } #[async_trait::async_trait] diff --git a/src/sources/statsd/mod.rs b/src/sources/statsd/mod.rs index a1ae446c56d36..e483578780c0b 100644 --- a/src/sources/statsd/mod.rs +++ b/src/sources/statsd/mod.rs @@ -133,7 +133,7 @@ impl GenerateConfig for StatsdConfig { fn generate_config() -> toml::Value { toml::Value::try_from(Self::Udp(UdpConfig::from_address( SocketListenAddr::SocketAddr(SocketAddr::V4(SocketAddrV4::new( - Ipv4Addr::new(127, 0, 0, 1), + Ipv4Addr::LOCALHOST, 8125, ))), ))) diff --git a/src/test_util/mod.rs b/src/test_util/mod.rs index b87b7abf6a43d..655e872f9fe52 100644 --- a/src/test_util/mod.rs +++ b/src/test_util/mod.rs @@ -114,11 +114,11 @@ pub fn next_addr_for_ip(ip: IpAddr) -> SocketAddr { } pub fn next_addr() -> SocketAddr { - next_addr_for_ip(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1))) + next_addr_for_ip(IpAddr::V4(Ipv4Addr::LOCALHOST)) } pub fn next_addr_v6() -> SocketAddr { - next_addr_for_ip(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1))) + next_addr_for_ip(IpAddr::V6(Ipv6Addr::LOCALHOST)) } pub fn trace_init() {