Skip to content

Commit ddf26b9

Browse files
feat(swarm): remove handler field from ConnectionClosed event
Instead of transferring the `ConnectionHandler` back in a event to the `NetworkBehaviour`, we introduce `ConnectionHandler::poll_close`. This function will be polled like a `Stream` and can emit events that will be delivered to the `NetworkBehaviour`. Resolves: #3046. Pull-Request: #4076.
1 parent 7517934 commit ddf26b9

File tree

39 files changed

+271
-217
lines changed

39 files changed

+271
-217
lines changed

misc/allow-block-list/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ where
231231
Ok(dummy::ConnectionHandler)
232232
}
233233

234-
fn on_swarm_event(&mut self, event: FromSwarm<Self::ConnectionHandler>) {
234+
fn on_swarm_event(&mut self, event: FromSwarm) {
235235
match event {
236236
FromSwarm::ConnectionClosed(_) => {}
237237
FromSwarm::ConnectionEstablished(_) => {}

misc/connection-limits/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ impl NetworkBehaviour for Behaviour {
303303
Ok(dummy::ConnectionHandler)
304304
}
305305

306-
fn on_swarm_event(&mut self, event: FromSwarm<Self::ConnectionHandler>) {
306+
fn on_swarm_event(&mut self, event: FromSwarm) {
307307
match event {
308308
FromSwarm::ConnectionClosed(ConnectionClosed {
309309
peer_id,
@@ -583,7 +583,7 @@ mod tests {
583583
)))
584584
}
585585

586-
fn on_swarm_event(&mut self, _event: FromSwarm<Self::ConnectionHandler>) {}
586+
fn on_swarm_event(&mut self, _event: FromSwarm) {}
587587

588588
fn on_connection_handler_event(
589589
&mut self,

misc/memory-connection-limits/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ impl NetworkBehaviour for Behaviour {
181181
Ok(dummy::ConnectionHandler)
182182
}
183183

184-
fn on_swarm_event(&mut self, _: FromSwarm<Self::ConnectionHandler>) {}
184+
fn on_swarm_event(&mut self, _: FromSwarm) {}
185185

186186
fn on_connection_handler_event(
187187
&mut self,

misc/memory-connection-limits/tests/util.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ impl<const MEM_PENDING: usize, const MEM_ESTABLISHED: usize> NetworkBehaviour
107107
Ok(dummy::ConnectionHandler)
108108
}
109109

110-
fn on_swarm_event(&mut self, _: FromSwarm<Self::ConnectionHandler>) {}
110+
fn on_swarm_event(&mut self, _: FromSwarm) {}
111111

112112
fn on_connection_handler_event(
113113
&mut self,

protocols/autonat/src/behaviour.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -362,16 +362,14 @@ impl Behaviour {
362362
peer_id,
363363
connection_id,
364364
endpoint,
365-
handler,
366365
remaining_established,
367-
}: ConnectionClosed<<Self as NetworkBehaviour>::ConnectionHandler>,
366+
}: ConnectionClosed,
368367
) {
369368
self.inner
370369
.on_swarm_event(FromSwarm::ConnectionClosed(ConnectionClosed {
371370
peer_id,
372371
connection_id,
373372
endpoint,
374-
handler,
375373
remaining_established,
376374
}));
377375

@@ -539,7 +537,7 @@ impl NetworkBehaviour for Behaviour {
539537
.handle_established_outbound_connection(connection_id, peer, addr, role_override)
540538
}
541539

542-
fn on_swarm_event(&mut self, event: FromSwarm<Self::ConnectionHandler>) {
540+
fn on_swarm_event(&mut self, event: FromSwarm) {
543541
self.listen_addresses.on_swarm_event(&event);
544542

545543
match event {

protocols/dcutr/src/behaviour_impl.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ impl Behaviour {
167167
connection_id,
168168
endpoint: connected_point,
169169
..
170-
}: ConnectionClosed<<Self as NetworkBehaviour>::ConnectionHandler>,
170+
}: ConnectionClosed,
171171
) {
172172
if !connected_point.is_relayed() {
173173
let connections = self
@@ -358,7 +358,7 @@ impl NetworkBehaviour for Behaviour {
358358
Poll::Pending
359359
}
360360

361-
fn on_swarm_event(&mut self, event: FromSwarm<Self::ConnectionHandler>) {
361+
fn on_swarm_event(&mut self, event: FromSwarm) {
362362
self.external_addresses.on_swarm_event(&event);
363363

364364
match event {

protocols/floodsub/src/layer.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ impl Floodsub {
307307
peer_id,
308308
remaining_established,
309309
..
310-
}: ConnectionClosed<<Self as NetworkBehaviour>::ConnectionHandler>,
310+
}: ConnectionClosed,
311311
) {
312312
if remaining_established > 0 {
313313
// we only care about peer disconnections
@@ -482,7 +482,7 @@ impl NetworkBehaviour for Floodsub {
482482
Poll::Pending
483483
}
484484

485-
fn on_swarm_event(&mut self, event: FromSwarm<Self::ConnectionHandler>) {
485+
fn on_swarm_event(&mut self, event: FromSwarm) {
486486
match event {
487487
FromSwarm::ConnectionEstablished(connection_established) => {
488488
self.on_connection_established(connection_established)

protocols/gossipsub/src/behaviour.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3091,7 +3091,7 @@ where
30913091
endpoint,
30923092
remaining_established,
30933093
..
3094-
}: ConnectionClosed<<Self as NetworkBehaviour>::ConnectionHandler>,
3094+
}: ConnectionClosed,
30953095
) {
30963096
// Remove IP from peer scoring system
30973097
if let Some((peer_score, ..)) = &mut self.peer_score {
@@ -3433,7 +3433,7 @@ where
34333433
Poll::Pending
34343434
}
34353435

3436-
fn on_swarm_event(&mut self, event: FromSwarm<Self::ConnectionHandler>) {
3436+
fn on_swarm_event(&mut self, event: FromSwarm) {
34373437
match event {
34383438
FromSwarm::ConnectionEstablished(connection_established) => {
34393439
self.on_connection_established(connection_established)

protocols/gossipsub/src/behaviour/tests.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
// Collection of tests for the gossipsub network behaviour
2222

2323
use super::*;
24-
use crate::protocol::ProtocolConfig;
2524
use crate::subscription_filter::WhitelistSubscriptionFilter;
2625
use crate::transform::{DataTransform, IdentityTransform};
2726
use crate::ValidationError;
@@ -267,13 +266,10 @@ where
267266
for connection_id in peer_connections.connections.clone() {
268267
active_connections = active_connections.checked_sub(1).unwrap();
269268

270-
let dummy_handler = Handler::new(ProtocolConfig::default());
271-
272269
gs.on_swarm_event(FromSwarm::ConnectionClosed(ConnectionClosed {
273270
peer_id: *peer_id,
274271
connection_id,
275272
endpoint: &fake_endpoint,
276-
handler: dummy_handler,
277273
remaining_established: active_connections,
278274
}));
279275
}

protocols/identify/src/behaviour.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ impl NetworkBehaviour for Behaviour {
335335
Ok(self.discovered_peers.get(&peer))
336336
}
337337

338-
fn on_swarm_event(&mut self, event: FromSwarm<Self::ConnectionHandler>) {
338+
fn on_swarm_event(&mut self, event: FromSwarm) {
339339
let listen_addr_changed = self.listen_addresses.on_swarm_event(&event);
340340
let external_addr_changed = self.external_addresses.on_swarm_event(&event);
341341

0 commit comments

Comments
 (0)