Skip to content

Commit d3e414a

Browse files
committed
fix(p2p/webrtc): bug in discovery enabling condition and enable discovery for webnode
1 parent 27ba63a commit d3e414a

File tree

2 files changed

+27
-28
lines changed

2 files changed

+27
-28
lines changed

node/web/src/lib.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fn main() {
2424
thread::main_thread_init();
2525
wasm_bindgen_futures::spawn_local(async {
2626
console_error_panic_hook::set_once();
27-
tracing::initialize(tracing::Level::INFO);
27+
tracing::initialize(tracing::Level::DEBUG);
2828

2929
init_rayon().await.unwrap();
3030
});
@@ -70,7 +70,6 @@ async fn setup_node(
7070
}
7171

7272
node_builder
73-
.p2p_no_discovery()
7473
.p2p_custom_task_spawner(P2pTaskRemoteSpawner {})
7574
.unwrap();
7675
node_builder.gather_stats();

p2p/src/channels/signaling/discovery/p2p_channels_signaling_discovery_actions.rs

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -126,27 +126,24 @@ impl redux::EnablingCondition<P2pState> for P2pChannelsSignalingDiscoveryAction
126126
})
127127
}
128128
P2pChannelsSignalingDiscoveryAction::RequestSend { peer_id } => {
129-
!state.already_has_max_peers()
130-
&& state.get_ready_peer(peer_id).map_or(false, |p| {
131-
match &p.channels.signaling.discovery {
132-
P2pChannelsSignalingDiscoveryState::Ready { local, .. } => {
133-
match local {
134-
SignalingDiscoveryState::WaitingForRequest { .. } => true,
135-
SignalingDiscoveryState::DiscoveredRejected {
136-
time, ..
137-
}
138-
| SignalingDiscoveryState::Answered { time, .. } => {
139-
// Allow one discovery request per minute.
140-
// TODO(binier): make configurable
141-
now.checked_sub(*time)
142-
.map_or(false, |dur| dur.as_secs() >= 60)
143-
}
144-
_ => false,
129+
state.get_ready_peer(peer_id).map_or(false, |p| {
130+
match &p.channels.signaling.discovery {
131+
P2pChannelsSignalingDiscoveryState::Ready { local, .. } => {
132+
match local {
133+
SignalingDiscoveryState::WaitingForRequest { .. } => true,
134+
SignalingDiscoveryState::DiscoveredRejected { time, .. }
135+
| SignalingDiscoveryState::Answered { time, .. } => {
136+
// Allow one discovery request per minute.
137+
// TODO(binier): make configurable
138+
now.checked_sub(*time)
139+
.map_or(false, |dur| dur.as_secs() >= 60)
145140
}
141+
_ => false,
146142
}
147-
_ => false,
148143
}
149-
})
144+
_ => false,
145+
}
146+
})
150147
}
151148
P2pChannelsSignalingDiscoveryAction::DiscoveryRequestReceived { peer_id, .. } => state
152149
.get_ready_peer(peer_id)
@@ -218,14 +215,17 @@ impl redux::EnablingCondition<P2pState> for P2pChannelsSignalingDiscoveryAction
218215
}),
219216
// TODO(binier): constrain interval between these requests
220217
// to handle malicious peers.
221-
P2pChannelsSignalingDiscoveryAction::DiscoveryRequestSend { peer_id, .. } => state
222-
.get_ready_peer(peer_id)
223-
.map_or(false, |p| match &p.channels.signaling.discovery {
224-
P2pChannelsSignalingDiscoveryState::Ready { remote, .. } => {
225-
matches!(remote, SignalingDiscoveryState::Requested { .. })
226-
}
227-
_ => false,
228-
}),
218+
P2pChannelsSignalingDiscoveryAction::DiscoveryRequestSend { peer_id, .. } => {
219+
!state.already_has_min_peers()
220+
&& state.get_ready_peer(peer_id).map_or(false, |p| {
221+
match &p.channels.signaling.discovery {
222+
P2pChannelsSignalingDiscoveryState::Ready { remote, .. } => {
223+
matches!(remote, SignalingDiscoveryState::Requested { .. })
224+
}
225+
_ => false,
226+
}
227+
})
228+
}
229229
P2pChannelsSignalingDiscoveryAction::DiscoveredReceived { peer_id, .. } => state
230230
.get_ready_peer(peer_id)
231231
.map_or(false, |p| match &p.channels.signaling.discovery {

0 commit comments

Comments
 (0)