Skip to content

Commit 803f778

Browse files
committed
(fix/noise): make error more verbose
1 parent 8a78406 commit 803f778

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

p2p/src/network/noise/p2p_network_noise_reducer.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use openmina_core::{bug_condition, fuzzed_maybe, Substate};
55
use crate::connection::incoming::{P2pConnectionIncomingAction, P2pConnectionIncomingState};
66
use crate::{
77
Data, P2pNetworkConnectionError, P2pNetworkPnetAction, P2pNetworkSchedulerAction,
8-
P2pNetworkSchedulerState, P2pNetworkSelectAction, P2pState, SelectKind,
8+
P2pNetworkSchedulerState, P2pNetworkSelectAction, P2pState, PeerId, SelectKind,
99
};
1010

1111
use self::p2p_network_noise_state::ResponderConsumeOutput;
@@ -155,9 +155,13 @@ impl P2pNetworkNoiseState {
155155
if noise_state.expected_peer_id.is_some_and(|expected_per_id| {
156156
expected_per_id != remote_peer_id
157157
}) {
158-
*state = P2pNetworkNoiseStateInner::Error(dbg!(
159-
NoiseError::RemotePeerIdMismatch
160-
));
158+
let lhs = noise_state
159+
.expected_peer_id
160+
.map_or("none".to_string(), PeerId::to_libp2p_string);
161+
let rhs = remote_peer_id.to_libp2p_string();
162+
*state = P2pNetworkNoiseStateInner::Error(
163+
NoiseError::RemotePeerIdMismatch(format!("{lhs} != {rhs}")),
164+
);
161165
} else {
162166
*state = P2pNetworkNoiseStateInner::Done {
163167
incoming: true,
@@ -357,8 +361,12 @@ impl P2pNetworkNoiseState {
357361
if noise_state.expected_peer_id.is_some_and(|expected_per_id| {
358362
expected_per_id != remote_peer_id
359363
}) {
364+
let lhs = noise_state
365+
.expected_peer_id
366+
.map_or("none".to_string(), PeerId::to_libp2p_string);
367+
let rhs = remote_peer_id.to_libp2p_string();
360368
*state = P2pNetworkNoiseStateInner::Error(
361-
NoiseError::RemotePeerIdMismatch,
369+
NoiseError::RemotePeerIdMismatch(format!("{lhs} != {rhs}")),
362370
);
363371
} else {
364372
*state = P2pNetworkNoiseStateInner::Done {

p2p/src/network/noise/p2p_network_noise_state.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ impl P2pNetworkNoiseState {
7474

7575
pub fn as_error(&self) -> Option<NoiseError> {
7676
match &self.inner {
77-
Some(P2pNetworkNoiseStateInner::Error(error)) => Some(*error),
77+
Some(P2pNetworkNoiseStateInner::Error(error)) => Some(error.clone()),
7878
_ => None,
7979
}
8080
}
@@ -224,7 +224,7 @@ impl NoiseState {
224224
}
225225
}
226226

227-
#[derive(Debug, Error, Serialize, Deserialize, Clone, Copy, PartialEq, Eq)]
227+
#[derive(Debug, Error, Serialize, Deserialize, Clone, PartialEq, Eq)]
228228
pub enum NoiseError {
229229
#[error("chunk too short")]
230230
ChunkTooShort,
@@ -238,8 +238,8 @@ pub enum NoiseError {
238238
InvalidSignature,
239239
#[error("remote and local public keys are same")]
240240
SelfConnection,
241-
#[error("remote peer id doesn't match expected peer id")]
242-
RemotePeerIdMismatch,
241+
#[error("remote peer id doesn't match expected peer id: {0}")]
242+
RemotePeerIdMismatch(String),
243243
#[error("failed to encrypt data")]
244244
Encryption,
245245
}

0 commit comments

Comments
 (0)