From b656003306184061588f25df0b8b4555b41157f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bogdan-=C8=98tefan=20Neac=C5=9Fu?= Date: Tue, 17 Dec 2024 16:59:01 +0200 Subject: [PATCH 1/4] Expect that previously regitrated clients don't have v6 addr --- .../authenticator/src/mixnet_listener.rs | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/service-providers/authenticator/src/mixnet_listener.rs b/service-providers/authenticator/src/mixnet_listener.rs index 0c4d8dfb0ff..1209c4cd171 100644 --- a/service-providers/authenticator/src/mixnet_listener.rs +++ b/service-providers/authenticator/src/mixnet_listener.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 use std::{ + net::IpAddr, sync::Arc, time::{Duration, SystemTime}, }; @@ -11,7 +12,9 @@ use crate::{error::AuthenticatorError, peer_manager::PeerManager}; use defguard_wireguard_rs::net::IpAddrMask; use defguard_wireguard_rs::{host::Peer, key::Key}; use futures::StreamExt; -use nym_authenticator_requests::latest::registration::RegistrationData; +use nym_authenticator_requests::{ + latest::registration::RegistrationData, v4::registration::IpPair, +}; use nym_authenticator_requests::{ latest::registration::{GatewayClient, PendingRegistrations, PrivateIPs}, traits::{ @@ -233,25 +236,24 @@ impl MixnetListener { let peer = self.peer_manager.query_peer(remote_public).await?; if let Some(peer) = peer { - let private_ipv4 = peer + let allowed_ipv4 = peer .allowed_ips .iter() .find_map(|ip_mask| match ip_mask.ip { std::net::IpAddr::V4(ipv4_addr) => Some(ipv4_addr), _ => None, - }); - let private_ipv6 = peer + }) + .ok_or(AuthenticatorError::InternalError( + "there should be one private IPv4 in the list".to_string(), + ))?; + let allowed_ipv6 = peer .allowed_ips .iter() .find_map(|ip_mask| match ip_mask.ip { std::net::IpAddr::V6(ipv6_addr) => Some(ipv6_addr), _ => None, - }); - let (Some(allowed_ipv4), Some(allowed_ipv6)) = (private_ipv4, private_ipv6) else { - return Err(AuthenticatorError::InternalError( - "there should be one private IP pair in the list".to_string(), - )); - }; + }) + .unwrap_or(IpPair::from(IpAddr::from(allowed_ipv4)).ipv6); let bytes = match AuthenticatorVersion::from(protocol) { AuthenticatorVersion::V1 => v1::response::AuthenticatorResponse::new_registered( v1::registration::RegistredData { From a9ede22bbd12738cc848115f09bcd807a1b87fed Mon Sep 17 00:00:00 2001 From: benedetta davico <46782255+benedettadavico@users.noreply.github.com> Date: Tue, 17 Dec 2024 17:41:12 +0100 Subject: [PATCH 2/4] update nym-node version --- nym-node/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nym-node/Cargo.toml b/nym-node/Cargo.toml index 897a70cb0c4..6908bcd023f 100644 --- a/nym-node/Cargo.toml +++ b/nym-node/Cargo.toml @@ -3,7 +3,7 @@ [package] name = "nym-node" -version = "1.2.0" +version = "1.2.1" authors.workspace = true repository.workspace = true homepage.workspace = true From 37b10b59aafaf89da644d930a65228f1bf83a99e Mon Sep 17 00:00:00 2001 From: benedetta davico <46782255+benedettadavico@users.noreply.github.com> Date: Tue, 17 Dec 2024 17:54:18 +0100 Subject: [PATCH 3/4] update changelog for nym-node v1.2.1 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27ff4a5e56d..bb09e6add97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// ## [Unreleased] +## [2024.14-crunch-patched] (2024-12-17) + +- Fixes an issue to allow only one private IP pair +- Fixes compatibility issues between nym-nodes and older clients + ## [2024.14-crunch] (2024-12-11) - Merge/release/2024.14-crunch ([#5242]) From 039b05cf7eb551e5b6581d3f3964d6aeb19cc65d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bogdan-=C8=98tefan=20Neac=C5=9Fu?= Date: Tue, 17 Dec 2024 18:59:49 +0200 Subject: [PATCH 4/4] Modify CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bb09e6add97..7a79762d687 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,7 @@ Post 1.0.0 release, the changelog format is based on [Keep a Changelog](https:// ## [2024.14-crunch-patched] (2024-12-17) -- Fixes an issue to allow only one private IP pair +- Fixes an issue to allow previously registred clients to connect to latest nym-nodes - Fixes compatibility issues between nym-nodes and older clients ## [2024.14-crunch] (2024-12-11)