diff --git a/src/dns.rs b/src/dns.rs index 33be70c..dbc7bfd 100644 --- a/src/dns.rs +++ b/src/dns.rs @@ -78,6 +78,7 @@ pub fn extract_ipaddr_from_dns_message(message: &Message) -> Result Result<(ConnectionInfo, bool, usize, usize) const SERVER_WRITE_CLOSED: u8 = 1; const CLIENT_WRITE_CLOSED: u8 = 2; -const UDP_ASSO_TIMEOUT: u64 = 10; // seconds +const UDP_ASSO_TIMEOUT: u64 = 10; +// seconds const DNS_PORT: u16 = 53; struct TcpConnectState { @@ -239,8 +242,8 @@ impl<'a> TunToProxy<'a> { .register(&mut exit_receiver, EXIT_TOKEN, Interest::READABLE)?; #[rustfmt::skip] - let config = match tun.capabilities().medium { - Medium::Ethernet => Config::new(smoltcp::wire::EthernetAddress([0x02, 0x00, 0x00, 0x00, 0x00, 0x01]).into()), + let config = match tun.capabilities().medium { + Medium::Ethernet => Config::new(smoltcp::wire::EthernetAddress([0x02, 0x00, 0x00, 0x00, 0x00, 0x01]).into()), Medium::Ip => Config::new(smoltcp::wire::HardwareAddress::Ip), Medium::Ieee802154 => todo!(), }; @@ -578,9 +581,13 @@ impl<'a> TunToProxy<'a> { let data = buf[2..len + 2].to_vec(); let message = dns::parse_data_to_dns_message(&data, false)?; - let name = dns::extract_domain_from_dns_message(&message)?; - let ip = dns::extract_ipaddr_from_dns_message(&message)?; - log::info!("DNS over TCP ======== {} -> {}", name, ip); + + if let (Ok(name), Ok(ip)) = ( + dns::extract_domain_from_dns_message(&message), + dns::extract_ipaddr_from_dns_message(&message), + ) { + log::info!("DNS over TCP ======== {} -> {}", name, ip); + } state .tcp_proxy_handler .consume_data(OutgoingDirection::ToClient, len + 2);