Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions crates/factor-outbound-http/src/spin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ impl spin_http::Host for crate::InstanceState {
// in a single component execution
let client = self.spin_http_client.get_or_insert_with(|| {
let mut builder = reqwest::Client::builder()
.dns_resolver(Arc::new(SpinResolver(self.blocked_networks.clone())));
.dns_resolver(Arc::new(SpinDnsResolver(self.blocked_networks.clone())));
if !self.connection_pooling_enabled {
builder = builder.pool_max_idle_per_host(0);
}
Expand All @@ -117,9 +117,10 @@ impl spin_http::Host for crate::InstanceState {
}
}

struct SpinResolver(BlockedNetworks);
/// Resolves DNS using Tokio's resolver, filtering out blocked IPs.
struct SpinDnsResolver(BlockedNetworks);

impl reqwest::dns::Resolve for SpinResolver {
impl reqwest::dns::Resolve for SpinDnsResolver {
fn resolve(&self, name: reqwest::dns::Name) -> reqwest::dns::Resolving {
let blocked_networks = self.0.clone();
Box::pin(async move {
Expand Down
7 changes: 4 additions & 3 deletions crates/factor-outbound-redis/src/host.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ impl InstanceState {
address: String,
) -> Result<Resource<RedisConnection>, Error> {
let config = AsyncConnectionConfig::new()
.set_dns_resolver(SpinResolver(self.blocked_networks.clone()));
.set_dns_resolver(SpinDnsResolver(self.blocked_networks.clone()));
let conn = redis::Client::open(address.as_str())
.map_err(|_| Error::InvalidAddress)?
.get_multiplexed_async_connection_with_config(&config)
Expand Down Expand Up @@ -374,9 +374,10 @@ impl FromRedisValue for RedisResults {
}
}

struct SpinResolver(BlockedNetworks);
/// Resolves DNS using Tokio's resolver, filtering out blocked IPs.
struct SpinDnsResolver(BlockedNetworks);

impl AsyncDNSResolver for SpinResolver {
impl AsyncDNSResolver for SpinDnsResolver {
fn resolve<'a, 'b: 'a>(
&'a self,
host: &'b str,
Expand Down