diff --git a/Cargo.lock b/Cargo.lock index 67613bd2..164100a9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2126,6 +2126,7 @@ dependencies = [ "tokio", "tokio-util", "tun", + "windows 0.58.0", ] [[package]] @@ -3733,7 +3734,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] @@ -3755,7 +3756,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.92", + "syn 2.0.94", ] [[package]] diff --git a/src/messages.rs b/src/messages.rs index 4a5ed3bc..b302b58c 100755 --- a/src/messages.rs +++ b/src/messages.rs @@ -1,6 +1,6 @@ use std::fmt; use std::fmt::Formatter; -use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; +use std::net::{IpAddr, SocketAddr}; use anyhow::{anyhow, Result}; use internet_packet::{InternetPacket, TransportProtocol}; @@ -184,15 +184,15 @@ impl TryFrom> for SmolPacket { impl SmolPacket { pub fn src_ip(&self) -> IpAddr { match self { - SmolPacket::V4(packet) => IpAddr::V4(Ipv4Addr::from(packet.src_addr())), - SmolPacket::V6(packet) => IpAddr::V6(Ipv6Addr::from(packet.src_addr())), + SmolPacket::V4(packet) => IpAddr::V4(packet.src_addr()), + SmolPacket::V6(packet) => IpAddr::V6(packet.src_addr()), } } pub fn dst_ip(&self) -> IpAddr { match self { - SmolPacket::V4(packet) => IpAddr::V4(Ipv4Addr::from(packet.dst_addr())), - SmolPacket::V6(packet) => IpAddr::V6(Ipv6Addr::from(packet.dst_addr())), + SmolPacket::V4(packet) => IpAddr::V4(packet.dst_addr()), + SmolPacket::V6(packet) => IpAddr::V6(packet.dst_addr()), } } diff --git a/src/network/udp.rs b/src/network/udp.rs index 1b85c600..74502a77 100644 --- a/src/network/udp.rs +++ b/src/network/udp.rs @@ -12,10 +12,7 @@ use crate::messages::{ use internet_packet::InternetPacket; use smoltcp::phy::ChecksumCapabilities; -use smoltcp::wire::{ - IpProtocol, IpRepr, Ipv4Address, Ipv4Packet, Ipv4Repr, Ipv6Address, Ipv6Packet, Ipv6Repr, - UdpRepr, -}; +use smoltcp::wire::{IpProtocol, IpRepr, Ipv4Packet, Ipv4Repr, Ipv6Packet, Ipv6Repr, UdpRepr}; #[derive(Default)] pub struct ConnectionState { @@ -217,15 +214,15 @@ impl From for SmolPacket { let ip_repr: IpRepr = match (src_addr, dst_addr) { (SocketAddr::V4(src_addr), SocketAddr::V4(dst_addr)) => IpRepr::Ipv4(Ipv4Repr { - src_addr: Ipv4Address::from(*src_addr.ip()), - dst_addr: Ipv4Address::from(*dst_addr.ip()), + src_addr: (*src_addr.ip()), + dst_addr: (*dst_addr.ip()), next_header: IpProtocol::Udp, payload_len: udp_repr.header_len() + payload.len(), hop_limit: 255, }), (SocketAddr::V6(src_addr), SocketAddr::V6(dst_addr)) => IpRepr::Ipv6(Ipv6Repr { - src_addr: Ipv6Address::from(*src_addr.ip()), - dst_addr: Ipv6Address::from(*dst_addr.ip()), + src_addr: (*src_addr.ip()), + dst_addr: (*dst_addr.ip()), next_header: IpProtocol::Udp, payload_len: udp_repr.header_len() + payload.len(), hop_limit: 255, diff --git a/src/packet_sources/wireguard.rs b/src/packet_sources/wireguard.rs index 5456d711..19fb5ef4 100755 --- a/src/packet_sources/wireguard.rs +++ b/src/packet_sources/wireguard.rs @@ -1,5 +1,5 @@ use std::collections::HashMap; -use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; +use std::net::{IpAddr, SocketAddr}; use std::sync::Arc; use crate::messages::{ @@ -286,8 +286,7 @@ impl WireGuardTask { pretty_hex(&buf), ); - self.peers_by_ip - .insert(Ipv4Addr::from(packet.src_addr()).into(), peer); + self.peers_by_ip.insert(packet.src_addr().into(), peer); let event = NetworkEvent::ReceivePacket { packet: SmolPacket::from(packet), tunnel_info: TunnelInfo::WireGuard { @@ -318,8 +317,7 @@ impl WireGuardTask { pretty_hex(&buf), ); - self.peers_by_ip - .insert(Ipv6Addr::from(packet.src_addr()).into(), peer); + self.peers_by_ip.insert(packet.src_addr().into(), peer); let event = NetworkEvent::ReceivePacket { packet: SmolPacket::from(packet), tunnel_info: TunnelInfo::WireGuard {