Skip to content

Commit bc1647c

Browse files
committed
fix(client): add peers deadlock
1 parent 46c19e6 commit bc1647c

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

src/client/p2p/peer.rs

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,42 @@ impl PeerHandler {
186186
}
187187
}
188188
None => {
189-
self.add_peer(peer).await;
189+
let ipv6_remote = self.parse_address(
190+
&peer.identity,
191+
&peer.ipv6,
192+
peer.port,
193+
true, // is_ipv6
194+
);
195+
if ipv6_remote.is_some() {
196+
tracing::info!("Added IPv6 peer: {} at {}:{}", peer.identity, peer.ipv6, peer.port);
197+
}
198+
199+
let stun_remote = self.parse_address(
200+
&peer.identity,
201+
&peer.stun_ip,
202+
peer.stun_port,
203+
false, // is_ipv4
204+
);
205+
if stun_remote.is_some() {
206+
tracing::info!("Added Hole Punch peer: {} at {}:{}", peer.identity, peer.ipv6, peer.port);
207+
}
208+
209+
// Add or update peer in the map
210+
peers.insert(
211+
peer.identity.clone(),
212+
PeerMeta {
213+
name: peer.name.clone(),
214+
identity: peer.identity.clone(),
215+
private_ip: peer.private_ip.clone(),
216+
ciders: peer.ciders.clone(),
217+
ipv6: peer.ipv6.clone(),
218+
port: peer.port,
219+
remote_addr: ipv6_remote,
220+
stun_addr: stun_remote,
221+
last_active: None,
222+
stun_last_active: None,
223+
},
224+
);
190225
}
191226
}
192227

0 commit comments

Comments
 (0)