upgrade to ipv6 if available

This commit is contained in:
alex 2026-06-30 09:25:38 +08:00
parent 1de337f3d6
commit ebf0ea3a04

View File

@ -550,7 +550,7 @@ pub async fn check_peer_registration_needed(
_v6_info: &Option<V6Info>, _v6_info: &Option<V6Info>,
peer_sock: &SdlanSock, peer_sock: &SdlanSock,
) { ) {
let p = eee.known_peers.peers.get(&src_mac); let mut p = eee.known_peers.peers.get_mut(&src_mac);
let last_seen; let last_seen;
let now; let now;
match p { match p {
@ -561,7 +561,7 @@ pub async fn check_peer_registration_needed(
return; return;
// unimplemented!(); // unimplemented!();
} }
Some(k) => { Some(ref mut k) => {
// let mut ipv4_to_ipv6 = false; // let mut ipv4_to_ipv6 = false;
now = get_current_timestamp(); now = get_current_timestamp();
if !from_sn { if !from_sn {
@ -569,8 +569,14 @@ pub async fn check_peer_registration_needed(
} }
let origin_family = k.sock.family; let origin_family = k.sock.family;
if origin_family != peer_sock.family { if origin_family != peer_sock.family {
if peer_sock.family == AF_INET6 && origin_family == AF_INET {
info!("Upgrading peer {} from IPv4 to IPv6 P2P", mac_to_string(&src_mac));
k.sock = peer_sock.deepcopy();
k.last_seen.store(now, Ordering::Relaxed);
} else {
return; return;
} }
}
/* /*
if peer_sock.family == AF_INET6 && k.sock.read().unwrap().family == AF_INET { if peer_sock.family == AF_INET6 && k.sock.read().unwrap().family == AF_INET {
println!("changing to ipv6"); println!("changing to ipv6");