Skip to content

Commit 2e39f69

Browse files
sanityclaude
andcommitted
fix: resolve post-rebase compilation errors
- Use peer() method instead of peer field access - Use PeerKeyLocation::with_location() constructor - Simplify get_peer_by_addr to only check connections_by_location 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent ab8f374 commit 2e39f69

File tree

4 files changed

+79
-38
lines changed

4 files changed

+79
-38
lines changed

crates/core/src/node/network_bridge/p2p_protoc.rs

Lines changed: 69 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,9 @@ impl P2pConnManager {
473473
);
474474
match peer_connection {
475475
Some(peer_connection) => {
476-
if let Err(e) = peer_connection.sender.send(Left(msg.clone())).await {
476+
if let Err(e) =
477+
peer_connection.sender.send(Left(msg.clone())).await
478+
{
477479
tracing::error!(
478480
tx = %msg.id(),
479481
"Failed to send message to peer: {}", e
@@ -680,10 +682,11 @@ impl P2pConnManager {
680682
);
681683

682684
// Clean up all active connections
683-
let peers_to_cleanup: Vec<_> =
684-
ctx.connections.iter().map(|(addr, entry)| {
685-
(*addr, entry.pub_key.clone())
686-
}).collect();
685+
let peers_to_cleanup: Vec<_> = ctx
686+
.connections
687+
.iter()
688+
.map(|(addr, entry)| (*addr, entry.pub_key.clone()))
689+
.collect();
687690
for (peer_addr, pub_key_opt) in peers_to_cleanup {
688691
tracing::debug!(%peer_addr, "Cleaning up active connection due to critical channel closure");
689692

@@ -692,7 +695,16 @@ impl P2pConnManager {
692695
PeerId::new(peer_addr, pub_key)
693696
} else {
694697
// Use our own pub_key as placeholder if we don't know the peer's
695-
PeerId::new(peer_addr, (*ctx.bridge.op_manager.ring.connection_manager.pub_key).clone())
698+
PeerId::new(
699+
peer_addr,
700+
(*ctx
701+
.bridge
702+
.op_manager
703+
.ring
704+
.connection_manager
705+
.pub_key)
706+
.clone(),
707+
)
696708
};
697709
ctx.bridge
698710
.op_manager
@@ -752,7 +764,16 @@ impl P2pConnManager {
752764
let peer = if let Some(ref pub_key) = entry.pub_key {
753765
PeerId::new(peer_addr, pub_key.clone())
754766
} else {
755-
PeerId::new(peer_addr, (*ctx.bridge.op_manager.ring.connection_manager.pub_key).clone())
767+
PeerId::new(
768+
peer_addr,
769+
(*ctx
770+
.bridge
771+
.op_manager
772+
.ring
773+
.connection_manager
774+
.pub_key)
775+
.clone(),
776+
)
756777
};
757778
let pub_key_to_remove = entry.pub_key.clone();
758779

@@ -851,13 +872,24 @@ impl P2pConnManager {
851872
}
852873
NodeEvent::QueryConnections { callback } => {
853874
// Reconstruct PeerIds from stored connections
854-
let connections: Vec<PeerId> = ctx.connections.iter()
875+
let connections: Vec<PeerId> = ctx
876+
.connections
877+
.iter()
855878
.map(|(addr, entry)| {
856879
if let Some(ref pub_key) = entry.pub_key {
857880
PeerId::new(*addr, pub_key.clone())
858881
} else {
859882
// Use our own pub_key as placeholder if we don't know the peer's
860-
PeerId::new(*addr, (*ctx.bridge.op_manager.ring.connection_manager.pub_key).clone())
883+
PeerId::new(
884+
*addr,
885+
(*ctx
886+
.bridge
887+
.op_manager
888+
.ring
889+
.connection_manager
890+
.pub_key)
891+
.clone(),
892+
)
861893
}
862894
})
863895
.collect();
@@ -917,12 +949,23 @@ impl P2pConnManager {
917949
}
918950

919951
// Reconstruct PeerIds from stored connections
920-
let connections: Vec<PeerId> = ctx.connections.iter()
952+
let connections: Vec<PeerId> = ctx
953+
.connections
954+
.iter()
921955
.map(|(addr, entry)| {
922956
if let Some(ref pub_key) = entry.pub_key {
923957
PeerId::new(*addr, pub_key.clone())
924958
} else {
925-
PeerId::new(*addr, (*ctx.bridge.op_manager.ring.connection_manager.pub_key).clone())
959+
PeerId::new(
960+
*addr,
961+
(*ctx
962+
.bridge
963+
.op_manager
964+
.ring
965+
.connection_manager
966+
.pub_key)
967+
.clone(),
968+
)
926969
}
927970
})
928971
.collect();
@@ -1948,12 +1991,16 @@ impl P2pConnManager {
19481991
}
19491992
let (tx, rx) = mpsc::channel(10);
19501993
tracing::debug!(self_peer = %self.bridge.op_manager.ring.connection_manager.pub_key, %peer_id, conn_map_size = self.connections.len(), "[CONN_TRACK] INSERT: OutboundConnectionSuccessful - adding to connections HashMap");
1951-
self.connections.insert(peer_id.addr, ConnectionEntry {
1952-
sender: tx,
1953-
pub_key: Some(peer_id.pub_key.clone()),
1954-
});
1994+
self.connections.insert(
1995+
peer_id.addr,
1996+
ConnectionEntry {
1997+
sender: tx,
1998+
pub_key: Some(peer_id.pub_key.clone()),
1999+
},
2000+
);
19552001
// Add to reverse lookup
1956-
self.addr_by_pub_key.insert(peer_id.pub_key.clone(), peer_id.addr);
2002+
self.addr_by_pub_key
2003+
.insert(peer_id.pub_key.clone(), peer_id.addr);
19572004
let Some(conn_events) = self.conn_event_tx.as_ref().cloned() else {
19582005
anyhow::bail!("Connection event channel not initialized");
19592006
};
@@ -2131,7 +2178,8 @@ impl P2pConnManager {
21312178
entry.pub_key = Some(new_peer_id.pub_key.clone());
21322179
}
21332180
// Add new reverse lookup
2134-
self.addr_by_pub_key.insert(new_peer_id.pub_key.clone(), remote_addr);
2181+
self.addr_by_pub_key
2182+
.insert(new_peer_id.pub_key.clone(), remote_addr);
21352183
}
21362184
}
21372185
}
@@ -2160,7 +2208,10 @@ impl P2pConnManager {
21602208
let peer = if let Some(ref pub_key) = entry.pub_key {
21612209
PeerId::new(remote_addr, pub_key.clone())
21622210
} else {
2163-
PeerId::new(remote_addr, (*self.bridge.op_manager.ring.connection_manager.pub_key).clone())
2211+
PeerId::new(
2212+
remote_addr,
2213+
(*self.bridge.op_manager.ring.connection_manager.pub_key).clone(),
2214+
)
21642215
};
21652216
// Remove from reverse lookup
21662217
if let Some(pub_key) = entry.pub_key {

crates/core/src/operations/connect.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,11 @@ impl Joiner {
203203
pub fn to_peer_key_location(&self) -> Option<PeerKeyLocation> {
204204
match self {
205205
Joiner::Unknown(_) => None,
206-
Joiner::Known(peer_id) => Some(PeerKeyLocation {
207-
peer: peer_id.clone(),
208-
location: Some(Location::from_address(&peer_id.addr)),
209-
}),
206+
Joiner::Known(peer_id) => Some(PeerKeyLocation::with_location(
207+
peer_id.pub_key.clone(),
208+
peer_id.addr,
209+
Location::from_address(&peer_id.addr),
210+
)),
210211
}
211212
}
212213

@@ -731,10 +732,10 @@ impl ConnectOp {
731732
push_unique_peer(&mut visited, target.clone());
732733
// Gateways know their address, NAT peers don't until observed
733734
let joiner = if is_gateway {
734-
Joiner::Known(own.peer.clone())
735+
Joiner::Known(own.peer())
735736
} else {
736737
// NAT peer: we only know our public key, not our external address
737-
Joiner::Unknown(own.peer.pub_key.clone())
738+
Joiner::Unknown(own.pub_key.clone())
738739
};
739740
let request = ConnectRequest {
740741
desired_location,
@@ -1368,7 +1369,7 @@ mod tests {
13681369

13691370
/// Helper to create a Joiner::Known from a PeerKeyLocation
13701371
fn make_joiner(pkl: &PeerKeyLocation) -> Joiner {
1371-
Joiner::Known(pkl.peer.clone())
1372+
Joiner::Known(pkl.peer())
13721373
}
13731374

13741375
#[test]

crates/core/src/ring/connection_manager.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@ impl ConnectionManager {
300300
self.peer_key.lock().clone()
301301
}
302302

303-
/// Look up a PeerId by socket address from connections_by_location or transient connections.
303+
/// Look up a PeerId by socket address from connections_by_location.
304304
pub fn get_peer_by_addr(&self, addr: SocketAddr) -> Option<PeerId> {
305305
// Check connections by location
306306
let connections = self.connections_by_location.read();
@@ -311,17 +311,6 @@ impl ConnectionManager {
311311
}
312312
}
313313
}
314-
drop(connections);
315-
316-
// Check transient connections
317-
if let Some((peer, _)) = self
318-
.transient_connections
319-
.iter()
320-
.find(|e| e.key().addr == addr)
321-
.map(|e| (e.key().clone(), e.value().clone()))
322-
{
323-
return Some(peer);
324-
}
325314
None
326315
}
327316

crates/core/src/test_utils.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1596,7 +1596,7 @@ async fn count_connection_events(event_log_path: &Path) -> anyhow::Result<usize>
15961596
for event in &events {
15971597
if let EventKind::Connect(ConnectEvent::Connected { connected, .. }) = &event.kind {
15981598
// Use the connected peer's ID as the unique identifier
1599-
connected_peers.insert(connected.peer.to_string());
1599+
connected_peers.insert(connected.peer().to_string());
16001600
}
16011601
}
16021602

0 commit comments

Comments
 (0)