From 51682c04b17b31b8d3e20a989aed5ade785cc0a1 Mon Sep 17 00:00:00 2001 From: "Philip (a-0)" <@ph:a-0.me> Date: Sat, 23 Mar 2024 18:36:26 +0100 Subject: [PATCH] Improved PeerId::from(I2pSocketAddr) function --- ubisync-lib/src/types/peer_id.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ubisync-lib/src/types/peer_id.rs b/ubisync-lib/src/types/peer_id.rs index 71fb01b..bff3923 100644 --- a/ubisync-lib/src/types/peer_id.rs +++ b/ubisync-lib/src/types/peer_id.rs @@ -1,7 +1,7 @@ use std::hash::Hash; -use anyhow::{anyhow, bail, Error}; -use i2p::net::{I2pAddr, I2pSocketAddr, ToI2pSocketAddrs}; +use anyhow::{anyhow, Error}; +use i2p::net::{I2pAddr, I2pSocketAddr}; use regex::Regex; use serde::{Deserialize, Serialize}; @@ -52,7 +52,11 @@ impl From for I2pSocketAddr { impl From for PeerId { fn from(value: I2pSocketAddr) -> Self { - PeerId { addr: value } + Self::try_from_b32(&value.dest().string(), Some(value.port())).unwrap_or( + Self::try_from_dest(&value.dest().string(), Some(value.port())).expect(&format!( + "I2pSocketAddr was neither in b32 nor in b64 format: {value:?}" + )), + ) } }