Skip to content

Commit 9fe81de

Browse files
authored
refactor(s2n-quic-dc): use map method to replace AsRef for Handshake trait (#2746)
1 parent b1245b8 commit 9fe81de

2 files changed

Lines changed: 15 additions & 11 deletions

File tree

dc/s2n-quic-dc/src/stream/client/tokio.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,19 @@ pub mod rpc {
2525
pub use crate::stream::client::rpc::{InMemoryResponse, Request, Response};
2626
}
2727

28-
// This trait is a temporary solution to abstract handshake_with_entry
29-
// and local_addr until we implement the handshake provider
28+
// This trait is a temporary solution to abstract handshake_with_entry,
29+
// local_addr, and map methods until we implement the handshake provider
3030
#[allow(async_fn_in_trait)]
31-
pub trait Handshake: AsRef<secret::Map> + Clone {
31+
pub trait Handshake: Clone {
3232
/// Handshake with the remote peer
3333
async fn handshake_with_entry(
3434
&self,
3535
remote_handshake_addr: SocketAddr,
3636
) -> std::io::Result<(secret::map::Peer, secret::HandshakeKind)>;
3737

3838
fn local_addr(&self) -> std::io::Result<SocketAddr>;
39+
40+
fn map(&self) -> &secret::Map;
3941
}
4042

4143
#[derive(Clone)]
@@ -58,7 +60,7 @@ impl<H: Handshake + Clone, S: event::Subscriber + Clone> Client<H, S> {
5860
}
5961

6062
pub fn drop_state(&self) {
61-
self.handshake.as_ref().drop_state()
63+
self.handshake.map().drop_state()
6264
}
6365

6466
pub fn handshake_state(&self) -> &H {
@@ -311,7 +313,7 @@ impl Builder {
311313

312314
let mut env = env::Builder::new(subscriber).with_socket_options(options);
313315

314-
let pool = udp_pool::Config::new((handshake.as_ref()).clone());
316+
let pool = udp_pool::Config::new(handshake.map().clone());
315317
env = env.with_pool(pool);
316318

317319
if let Some(threads) = self.background_threads {

dc/s2n-quic-dc/src/stream/server/tokio.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ use tracing::{trace, Instrument as _};
2525
pub mod tcp;
2626
pub mod udp;
2727

28-
// This trait is a temporary solution to abstract local_addr() method until we implement the handshake provider
29-
pub trait Handshake: AsRef<secret::Map> + Clone {
28+
// This trait is a temporary solution to abstract local_addr and map methods until we implement the handshake provider
29+
pub trait Handshake: Clone {
3030
fn local_addr(&self) -> SocketAddr;
31+
32+
fn map(&self) -> &secret::Map;
3133
}
3234

3335
#[derive(Clone)]
@@ -56,7 +58,7 @@ impl<H: Handshake + Clone, S: event::Subscriber + Clone> Server<H, S> {
5658
}
5759

5860
pub fn drop_state(&self) {
59-
self.handshake.as_ref().drop_state()
61+
self.handshake.map().drop_state()
6062
}
6163

6264
pub fn handshake_state(&self) -> &H {
@@ -225,7 +227,7 @@ impl Builder {
225227

226228
env = env.with_socket_options(options);
227229

228-
let mut pool = udp_pool::Config::new(handshake.as_ref().clone());
230+
let mut pool = udp_pool::Config::new(handshake.map().clone());
229231

230232
pool.reuse_port = concurrency > 1;
231233
pool.accept_flavor = self.accept_flavor;
@@ -443,7 +445,7 @@ impl<H: Handshake + Clone, S: event::Subscriber + Clone> Start<'_, H, S> {
443445
socket,
444446
&self.stream_sender,
445447
&self.server.env,
446-
self.server.handshake.as_ref(),
448+
self.server.handshake.map(),
447449
self.accept_flavor,
448450
)
449451
.run();
@@ -474,7 +476,7 @@ impl<H: Handshake + Clone, S: event::Subscriber + Clone> Start<'_, H, S> {
474476
socket,
475477
&self.stream_sender,
476478
&self.server.env,
477-
self.server.handshake.as_ref(),
479+
self.server.handshake.map(),
478480
self.backlog,
479481
self.accept_flavor,
480482
self.linger,

0 commit comments

Comments
 (0)