Skip to content

Commit 16a67c2

Browse files
committed
Add retry loop for Sniffer upstream connection
When connecting to upstream, the Sniffer now retries on connection failure instead of panicking. This matches the pattern used in MockDownstream and SnifferSV1. Closes #151
1 parent e7c9f72 commit 16a67c2

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

integration-tests/lib/sniffer.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,11 +91,17 @@ impl<'a> Sniffer<'a> {
9191
create_downstream(wait_for_client(listening_address).await)
9292
.await
9393
.expect("Failed to create downstream");
94-
let (upstream_receiver, upstream_sender) = create_upstream(
95-
TcpStream::connect(upstream_address)
96-
.await
97-
.expect("Failed to connect to upstream"),
98-
)
94+
let (upstream_receiver, upstream_sender) = create_upstream(loop {
95+
match TcpStream::connect(upstream_address).await {
96+
Ok(stream) => break stream,
97+
Err(_) => {
98+
println!(
99+
"Sniffer {}: unable to connect to upstream {}, retrying",
100+
identifier, upstream_address
101+
);
102+
}
103+
}
104+
})
99105
.await
100106
.expect("Failed to create upstream");
101107
select! {

0 commit comments

Comments
 (0)