Compare commits

..
Author SHA1 Message Date
d10266198d
Revert "(fix): disable QUIC GSO on Android"
All checks were successful
CI / checks (push) Successful in 9m47s
This reverts commit 8c0c39fe92.
2026-08-05 16:25:01 +02:00
8e22962f57
Revert "(fix): prefer IPv4 DNS on Android"
This reverts commit 88e5851ba2.
2026-08-05 16:24:50 +02:00

View file

@ -7,27 +7,6 @@ use wtransport::{ClientConfig as WTransportClientConfig, Endpoint};
use crate::{ConnectionHandle, Policy, Receiver, Sender}; use crate::{ConnectionHandle, Policy, Receiver, Sender};
#[cfg(target_os = "android")]
#[derive(Debug)]
struct AndroidDnsResolver;
#[cfg(target_os = "android")]
impl wtransport::config::DnsResolver for AndroidDnsResolver {
fn resolve(&self, host: &str) -> std::pin::Pin<Box<dyn wtransport::config::DnsLookupFuture>> {
let host = host.to_string();
Box::pin(async move {
let mut fallback = None;
for address in tokio::net::lookup_host(host).await? {
if address.is_ipv4() {
return Ok(Some(address));
}
fallback.get_or_insert(address);
}
Ok(fallback)
})
}
}
#[cfg(feature = "insecure-tls")] #[cfg(feature = "insecure-tls")]
mod noop_verifier { mod noop_verifier {
use rustls::{ use rustls::{
@ -281,21 +260,11 @@ fn client_config_from_roots(
tls_config.alpn_protocols = vec![b"h3".to_vec()]; tls_config.alpn_protocols = vec![b"h3".to_vec()];
let transport_config = wtransport::config::QuicTransportConfig::default(); Ok(WTransportClientConfig::builder()
#[cfg(target_os = "android")]
let transport_config = {
let mut transport_config = transport_config;
transport_config.enable_segmentation_offload(false);
transport_config
};
let config = WTransportClientConfig::builder()
.with_bind_default() .with_bind_default()
.with_custom_tls_and_transport(tls_config, transport_config) .with_custom_tls(tls_config)
.keep_alive_interval(policy.keep_alive_interval) .keep_alive_interval(policy.keep_alive_interval)
.max_idle_timeout(policy.max_idle_timeout) .max_idle_timeout(policy.max_idle_timeout)
.map_err(|e| CommunicationError::Other(e.to_string()))?; .map_err(|e| CommunicationError::Other(e.to_string()))?
#[cfg(target_os = "android")] .build())
let config = config.dns_resolver(AndroidDnsResolver);
Ok(config.build())
} }