remove AnyIP; fix IPv6 virtual addresses

This commit is contained in:
Aram 🍐 2023-12-23 21:01:00 -05:00
parent 38fc217a29
commit 488a0e0807
2 changed files with 18 additions and 4 deletions

View file

@ -10,7 +10,7 @@ use smoltcp::{
iface::{Config, Interface, SocketHandle, SocketSet}, iface::{Config, Interface, SocketHandle, SocketSet},
socket::tcp, socket::tcp,
time::Instant, time::Instant,
wire::{HardwareAddress, IpAddress, IpCidr}, wire::{HardwareAddress, IpAddress, IpCidr, IpVersion},
}; };
use std::{ use std::{
collections::{HashMap, HashSet, VecDeque}, collections::{HashMap, HashSet, VecDeque},
@ -78,7 +78,7 @@ impl<'a> TcpVirtualInterface<'a> {
} }
addresses addresses
.into_iter() .into_iter()
.map(|addr| IpCidr::new(addr, 32)) .map(|addr| IpCidr::new(addr, addr_length(&addr)))
.collect() .collect()
} }
} }
@ -249,3 +249,10 @@ impl VirtualInterfacePoll for TcpVirtualInterface<'_> {
} }
} }
} }
const fn addr_length(addr: &IpAddress) -> u8 {
match addr.version() {
IpVersion::Ipv4 => 32,
IpVersion::Ipv6 => 128,
}
}

View file

@ -10,7 +10,7 @@ use smoltcp::{
iface::{Config, Interface, SocketHandle, SocketSet}, iface::{Config, Interface, SocketHandle, SocketSet},
socket::udp::{self, UdpMetadata}, socket::udp::{self, UdpMetadata},
time::Instant, time::Instant,
wire::{HardwareAddress, IpAddress, IpCidr}, wire::{HardwareAddress, IpAddress, IpCidr, IpVersion},
}; };
use std::{ use std::{
collections::{HashMap, HashSet, VecDeque}, collections::{HashMap, HashSet, VecDeque},
@ -90,7 +90,7 @@ impl<'a> UdpVirtualInterface<'a> {
} }
addresses addresses
.into_iter() .into_iter()
.map(|addr| IpCidr::new(addr, 32)) .map(|addr| IpCidr::new(addr, addr_length(&addr)))
.collect() .collect()
} }
} }
@ -219,3 +219,10 @@ impl<'a> VirtualInterfacePoll for UdpVirtualInterface<'a> {
} }
} }
} }
const fn addr_length(addr: &IpAddress) -> u8 {
match addr.version() {
IpVersion::Ipv4 => 32,
IpVersion::Ipv6 => 128,
}
}