Skip to content

Commit a414afd

Browse files
elenaf9mxinden
andauthored
swarm/: include ListenerId in SwarmEvents (#2123)
Co-authored-by: Max Inden <[email protected]>
1 parent c1ef4bf commit a414afd

File tree

14 files changed

+117
-48
lines changed

14 files changed

+117
-48
lines changed

examples/chat-tokio.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
156156
swarm.behaviour_mut().floodsub.publish(floodsub_topic.clone(), line.as_bytes());
157157
}
158158
event = swarm.select_next_some() => {
159-
if let SwarmEvent::NewListenAddr(addr) = event {
160-
println!("Listening on {:?}", addr);
159+
if let SwarmEvent::NewListenAddr { address, .. } = event {
160+
println!("Listening on {:?}", address);
161161
}
162162
}
163163
}

examples/chat.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
160160
loop {
161161
match swarm.poll_next_unpin(cx) {
162162
Poll::Ready(Some(event)) => {
163-
if let SwarmEvent::NewListenAddr(addr) = event {
164-
println!("Listening on {:?}", addr);
163+
if let SwarmEvent::NewListenAddr { address, .. } = event {
164+
println!("Listening on {:?}", address);
165165
}
166166
}
167167
Poll::Ready(None) => return Poll::Ready(Ok(())),

examples/distributed-key-value-store.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
175175
loop {
176176
match swarm.poll_next_unpin(cx) {
177177
Poll::Ready(Some(event)) => {
178-
if let SwarmEvent::NewListenAddr(addr) = event {
179-
println!("Listening on {:?}", addr);
178+
if let SwarmEvent::NewListenAddr { address, .. } = event {
179+
println!("Listening on {:?}", address);
180180
}
181181
}
182182
Poll::Ready(None) => return Poll::Ready(Ok(())),

examples/gossipsub-chat.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ async fn main() -> Result<(), Box<dyn Error>> {
162162
id,
163163
peer_id
164164
),
165-
SwarmEvent::NewListenAddr(addr) => {
166-
println!("Listening on {:?}", addr);
165+
SwarmEvent::NewListenAddr { address, .. } => {
166+
println!("Listening on {:?}", address);
167167
}
168168
_ => {}
169169
},

examples/ipfs-private.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,8 @@ fn main() -> Result<(), Box<dyn Error>> {
287287
loop {
288288
match swarm.poll_next_unpin(cx) {
289289
Poll::Ready(Some(event)) => {
290-
if let SwarmEvent::NewListenAddr(addr) = event {
291-
println!("Listening on {:?}", addr);
290+
if let SwarmEvent::NewListenAddr { address, .. } = event {
291+
println!("Listening on {:?}", address);
292292
}
293293
}
294294
Poll::Ready(None) => return Poll::Ready(Ok(())),

examples/ping.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ fn main() -> Result<(), Box<dyn Error>> {
7979
block_on(future::poll_fn(move |cx| loop {
8080
match swarm.poll_next_unpin(cx) {
8181
Poll::Ready(Some(event)) => match event {
82-
SwarmEvent::NewListenAddr(addr) => println!("Listening on {:?}", addr),
82+
SwarmEvent::NewListenAddr{ address, .. } => println!("Listening on {:?}", address),
8383
SwarmEvent::Behaviour(event) => println!("{:?}", event),
8484
_ => {}
8585
},

protocols/identify/src/identify.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ mod tests {
498498
let swarm1_fut = swarm1.select_next_some();
499499
pin_mut!(swarm1_fut);
500500
match swarm1_fut.await {
501-
SwarmEvent::NewListenAddr(addr) => return addr,
501+
SwarmEvent::NewListenAddr { address, .. } => return address,
502502
_ => {}
503503
}
504504
}
@@ -577,7 +577,7 @@ mod tests {
577577
let swarm1_fut = swarm1.select_next_some();
578578
pin_mut!(swarm1_fut);
579579
match swarm1_fut.await {
580-
SwarmEvent::NewListenAddr(addr) => return addr,
580+
SwarmEvent::NewListenAddr { address, .. } => return address,
581581
_ => {}
582582
}
583583
}

protocols/ping/tests/ping.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ fn ping_pong() {
6464
let peer1 = async move {
6565
loop {
6666
match swarm1.select_next_some().await {
67-
SwarmEvent::NewListenAddr(listener) => tx.send(listener).await.unwrap(),
67+
SwarmEvent::NewListenAddr { address, .. } => tx.send(address).await.unwrap(),
6868
SwarmEvent::Behaviour(PingEvent { peer, result: Ok(PingSuccess::Ping { rtt }) }) => {
6969
count1 -= 1;
7070
if count1 == 0 {
@@ -137,7 +137,7 @@ fn max_failures() {
137137

138138
loop {
139139
match swarm1.select_next_some().await {
140-
SwarmEvent::NewListenAddr(listener) => tx.send(listener).await.unwrap(),
140+
SwarmEvent::NewListenAddr { address, .. } => tx.send(address).await.unwrap(),
141141
SwarmEvent::Behaviour(PingEvent {
142142
result: Ok(PingSuccess::Ping { .. }), ..
143143
}) => {

protocols/relay/examples/relay.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ fn main() -> Result<(), Box<dyn Error>> {
140140
loop {
141141
match swarm.poll_next_unpin(cx) {
142142
Poll::Ready(Some(event)) => match event {
143-
SwarmEvent::NewListenAddr(addr) => {
144-
print_listener_peer(&addr, &opt.mode, local_peer_id)
143+
SwarmEvent::NewListenAddr { address, .. } => {
144+
print_listener_peer(&address, &opt.mode, local_peer_id)
145145
}
146146
_ => println!("{:?}", event),
147147
},

protocols/relay/tests/lib.rs

Lines changed: 62 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,9 @@ fn src_connect_to_dst_listening_via_relay() {
7373
relay_swarm.listen_on(relay_addr.clone()).unwrap();
7474
spawn_swarm_on_pool(&pool, relay_swarm);
7575

76-
dst_swarm.listen_on(dst_listen_addr_via_relay.clone()).unwrap();
76+
let dst_listener = dst_swarm
77+
.listen_on(dst_listen_addr_via_relay.clone())
78+
.unwrap();
7779

7880
pool.run_until(async {
7981
// Destination Node dialing Relay.
@@ -93,7 +95,13 @@ fn src_connect_to_dst_listening_via_relay() {
9395
// Destination Node reporting listen address via relay.
9496
loop {
9597
match dst_swarm.select_next_some().await {
96-
SwarmEvent::NewListenAddr(addr) if addr == dst_listen_addr_via_relay => break,
98+
SwarmEvent::NewListenAddr {
99+
address,
100+
listener_id,
101+
} if listener_id == dst_listener => {
102+
assert_eq!(address, dst_listen_addr_via_relay);
103+
break;
104+
}
97105
SwarmEvent::Behaviour(CombinedEvent::Ping(_)) => {}
98106
SwarmEvent::Behaviour(CombinedEvent::Kad(KademliaEvent::RoutingUpdated {
99107
..
@@ -282,14 +290,20 @@ fn src_connect_to_dst_via_established_connection_to_relay() {
282290
relay_swarm.listen_on(relay_addr.clone()).unwrap();
283291
spawn_swarm_on_pool(&pool, relay_swarm);
284292

285-
dst_swarm.listen_on(dst_addr_via_relay.clone()).unwrap();
293+
let dst_listener = dst_swarm.listen_on(dst_addr_via_relay.clone()).unwrap();
286294
// Wait for destination to listen via relay.
287295
pool.run_until(async {
288296
loop {
289297
match dst_swarm.select_next_some().await {
290298
SwarmEvent::Dialing(_) => {}
291299
SwarmEvent::ConnectionEstablished { .. } => {}
292-
SwarmEvent::NewListenAddr(addr) if addr == dst_addr_via_relay => break,
300+
SwarmEvent::NewListenAddr {
301+
address,
302+
listener_id,
303+
} if listener_id == dst_listener => {
304+
assert_eq!(address, dst_addr_via_relay);
305+
break;
306+
}
293307
e => panic!("{:?}", e),
294308
}
295309
}
@@ -531,7 +545,7 @@ fn firewalled_src_discover_firewalled_dst_via_kad_and_connect_to_dst_via_routabl
531545
spawn_swarm_on_pool(&pool, relay_swarm);
532546

533547
// Destination Node listen via Relay.
534-
dst_swarm.listen_on(dst_addr_via_relay.clone()).unwrap();
548+
let dst_listener = dst_swarm.listen_on(dst_addr_via_relay.clone()).unwrap();
535549

536550
pool.run_until(async {
537551
// Destination Node dialing Relay.
@@ -556,7 +570,13 @@ fn firewalled_src_discover_firewalled_dst_via_kad_and_connect_to_dst_via_routabl
556570
// Destination Node reporting listen address via relay.
557571
loop {
558572
match dst_swarm.select_next_some().await {
559-
SwarmEvent::NewListenAddr(addr) if addr == dst_addr_via_relay => break,
573+
SwarmEvent::NewListenAddr {
574+
address,
575+
listener_id,
576+
} if listener_id == dst_listener => {
577+
assert_eq!(address, dst_addr_via_relay);
578+
break;
579+
}
560580
SwarmEvent::Behaviour(CombinedEvent::Ping(_)) => {}
561581
SwarmEvent::Behaviour(CombinedEvent::Kad(KademliaEvent::RoutingUpdated {
562582
..
@@ -715,14 +735,20 @@ fn inactive_connection_timeout() {
715735
relay_swarm.listen_on(relay_addr.clone()).unwrap();
716736
spawn_swarm_on_pool(&pool, relay_swarm);
717737

718-
dst_swarm.listen_on(dst_addr_via_relay.clone()).unwrap();
738+
let new_listener = dst_swarm.listen_on(dst_addr_via_relay.clone()).unwrap();
719739
// Wait for destination to listen via relay.
720740
pool.run_until(async {
721741
loop {
722742
match dst_swarm.select_next_some().await {
723743
SwarmEvent::Dialing(_) => {}
724744
SwarmEvent::ConnectionEstablished { .. } => {}
725-
SwarmEvent::NewListenAddr(addr) if addr == dst_addr_via_relay => break,
745+
SwarmEvent::NewListenAddr {
746+
address,
747+
listener_id,
748+
} if listener_id == new_listener => {
749+
assert_eq!(address, dst_addr_via_relay);
750+
break;
751+
}
726752
e => panic!("{:?}", e),
727753
}
728754
}
@@ -789,14 +815,20 @@ fn concurrent_connection_same_relay_same_dst() {
789815
relay_swarm.listen_on(relay_addr.clone()).unwrap();
790816
spawn_swarm_on_pool(&pool, relay_swarm);
791817

792-
dst_swarm.listen_on(dst_addr_via_relay.clone()).unwrap();
818+
let dst_listener = dst_swarm.listen_on(dst_addr_via_relay.clone()).unwrap();
793819
// Wait for destination to listen via relay.
794820
pool.run_until(async {
795821
loop {
796822
match dst_swarm.select_next_some().await {
797823
SwarmEvent::Dialing(_) => {}
798824
SwarmEvent::ConnectionEstablished { .. } => {}
799-
SwarmEvent::NewListenAddr(addr) if addr == dst_addr_via_relay => break,
825+
SwarmEvent::NewListenAddr {
826+
address,
827+
listener_id,
828+
} if listener_id == dst_listener => {
829+
assert_eq!(address, dst_addr_via_relay);
830+
break;
831+
}
800832
e => panic!("{:?}", e),
801833
}
802834
}
@@ -904,10 +936,10 @@ fn yield_incoming_connection_through_correct_listener() {
904936
relay_3_swarm.listen_on(relay_3_addr.clone()).unwrap();
905937
spawn_swarm_on_pool(&pool, relay_3_swarm);
906938

907-
dst_swarm.listen_on(relay_1_addr_incl_circuit.clone()).unwrap();
908-
dst_swarm.listen_on(relay_2_addr_incl_circuit.clone()).unwrap();
939+
let dst_listener_via_relay_1 = dst_swarm.listen_on(relay_1_addr_incl_circuit.clone()).unwrap();
940+
let dst_listener_via_relay_2 = dst_swarm.listen_on(relay_2_addr_incl_circuit.clone()).unwrap();
909941
// Listen on own address in order for relay 3 to be able to connect to destination node.
910-
dst_swarm.listen_on(dst_addr.clone()).unwrap();
942+
let dst_listener = dst_swarm.listen_on(dst_addr.clone()).unwrap();
911943

912944
// Wait for destination node to establish connections to relay 1 and 2.
913945
pool.run_until(async {
@@ -924,10 +956,18 @@ fn yield_incoming_connection_through_correct_listener() {
924956
break;
925957
}
926958
}
927-
SwarmEvent::NewListenAddr(addr)
928-
if addr == relay_1_addr_incl_circuit
929-
|| addr == relay_2_addr_incl_circuit
930-
|| addr == dst_addr => {}
959+
SwarmEvent::NewListenAddr {
960+
address,
961+
listener_id,
962+
} if listener_id == dst_listener_via_relay_2 => assert_eq!(address, relay_2_addr_incl_circuit),
963+
SwarmEvent::NewListenAddr {
964+
address,
965+
listener_id,
966+
} if listener_id == dst_listener_via_relay_1 => assert_eq!(address, relay_1_addr_incl_circuit),
967+
SwarmEvent::NewListenAddr {
968+
address,
969+
listener_id,
970+
} if listener_id == dst_listener => assert_eq!(address, dst_addr),
931971
SwarmEvent::Behaviour(CombinedEvent::Ping(_)) => {}
932972
e => panic!("{:?}", e),
933973
}
@@ -966,10 +1006,10 @@ fn yield_incoming_connection_through_correct_listener() {
9661006
unreachable!();
9671007
}
9681008
}
969-
SwarmEvent::NewListenAddr(addr)
970-
if addr == relay_1_addr_incl_circuit
971-
|| addr == relay_2_addr_incl_circuit
972-
|| addr == dst_addr => {}
1009+
SwarmEvent::NewListenAddr { address, .. }
1010+
if address == relay_1_addr_incl_circuit
1011+
|| address == relay_2_addr_incl_circuit
1012+
|| address == dst_addr => {}
9731013
SwarmEvent::Behaviour(CombinedEvent::Ping(PingEvent {
9741014
peer,
9751015
result: Ok(_),
@@ -1044,7 +1084,7 @@ fn yield_incoming_connection_through_correct_listener() {
10441084
pool.run_until(async {
10451085
loop {
10461086
match dst_swarm.select_next_some().await {
1047-
SwarmEvent::NewListenAddr(addr) if addr == Protocol::P2pCircuit.into() => break,
1087+
SwarmEvent::NewListenAddr { address, .. } if address == Protocol::P2pCircuit.into() => break,
10481088
SwarmEvent::Behaviour(CombinedEvent::Ping(_)) => {}
10491089
SwarmEvent::Behaviour(CombinedEvent::Kad(KademliaEvent::RoutingUpdated {
10501090
..

0 commit comments

Comments
 (0)