From 45dae7926314df387a5d02cb5a03b1f3e7b5ff8b Mon Sep 17 00:00:00 2001 From: "B. Blechschmidt" Date: Fri, 30 Jun 2023 21:14:28 +0200 Subject: [PATCH] Update smoltcp to version 0.10.0 --- Cargo.toml | 2 +- src/tun2proxy.rs | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b5fcb1b..297c289 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ log = "0.4" mio = { version = "0.8", features = ["os-poll", "net", "os-ext"] } nix = { version = "0.26", features = ["process", "signal"] } prctl = "1.0" -smoltcp = { version = "0.9.1", git = "https://github.com/smoltcp-rs/smoltcp", features = ["std", "phy-tuntap_interface"] } +smoltcp = { version = "0.10.0", features = ["std", "phy-tuntap_interface"] } thiserror = "1.0" url = "2.3" diff --git a/src/tun2proxy.rs b/src/tun2proxy.rs index ec984b4..6f1c3d8 100644 --- a/src/tun2proxy.rs +++ b/src/tun2proxy.rs @@ -9,6 +9,7 @@ use mio::{Events, Interest, Poll, Token}; use smoltcp::iface::{Config, Interface, SocketHandle, SocketSet}; use smoltcp::phy::{Device, Medium, RxToken, TunTapInterface, TxToken}; use smoltcp::socket::tcp::State; +use smoltcp::socket::udp::UdpMetadata; use smoltcp::socket::{tcp, udp}; use smoltcp::time::Instant; use smoltcp::wire::{IpCidr, IpProtocol, Ipv4Packet, Ipv6Packet, TcpPacket, UdpPacket}; @@ -291,7 +292,7 @@ impl<'a> TunToProxy<'a> { let mut virt = VirtualTunDevice::new(tun.capabilities()); let gateway4: Ipv4Addr = Ipv4Addr::from_str("0.0.0.1")?; let gateway6: Ipv6Addr = Ipv6Addr::from_str("::1")?; - let mut iface = Interface::new(config, &mut virt); + let mut iface = Interface::new(config, &mut virt, Instant::now()); iface.update_ip_addrs(|ip_addrs| { ip_addrs.push(IpCidr::new(gateway4.into(), 0)).unwrap(); ip_addrs.push(IpCidr::new(gateway6.into(), 0)).unwrap() @@ -576,7 +577,10 @@ impl<'a> TunToProxy<'a> { let dst = SocketAddr::try_from(dst)?; socket.bind(dst)?; socket - .send_slice(response.as_slice(), resolved_conn.src.into()) + .send_slice( + response.as_slice(), + UdpMetadata::from(resolved_conn.src), + ) .expect("failed to send DNS response"); let handle = self.sockets.add(socket); self.expect_smoltcp_send()?;