Skip to content

Commit 9e31fc5

Browse files
committed
* Addressed PR comments.
1 parent 34dca18 commit 9e31fc5

File tree

7 files changed

+42
-65
lines changed

7 files changed

+42
-65
lines changed

client/swimos_client/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ use swimos_remote::net::plain::TokioPlainTextNetworking;
4242
use swimos_remote::net::ClientConnections;
4343
use swimos_runtime::downlink::{DownlinkOptions, DownlinkRuntimeConfig};
4444
#[cfg(feature = "tls")]
45-
use swimos_tls::{ClientConfig as TlsConfig, RustTlsClientNetworking, TlsError};
45+
use swimos_tls::{ClientConfig as TlsConfig, RustlsClientNetworking, TlsError};
4646
use swimos_utilities::trigger;
4747
use swimos_utilities::trigger::promise;
4848
use tokio::sync::mpsc;
@@ -106,7 +106,7 @@ impl SwimClientBuilder {
106106
let SwimClientBuilder { config } = self;
107107
Ok(open_client(
108108
config,
109-
RustTlsClientNetworking::try_from_config(Arc::new(Resolver::new().await), tls_config)?,
109+
RustlsClientNetworking::try_from_config(Arc::new(Resolver::new().await), tls_config)?,
110110
)
111111
.await)
112112
}

runtime/swimos_tls/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ pub use config::{
2222
};
2323
pub use errors::TlsError;
2424
pub use maybe::MaybeTlsStream;
25-
pub use net::{RustNetworking, RustTlsClientNetworking, RustTlsListener, RustTlsServerNetworking};
25+
pub use net::{RustNetworking, RustTlsListener, RustlsClientNetworking, RustlsServerNetworking};

runtime/swimos_tls/src/net/client.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ use crate::{config::ClientConfig, errors::TlsError, maybe::MaybeTlsStream};
2929

3030
/// [`ClientConnections`] implementation that supports opening both secure and insecure connections.
3131
#[derive(Clone)]
32-
pub struct RustTlsClientNetworking {
32+
pub struct RustlsClientNetworking {
3333
resolver: Arc<Resolver>,
3434
connector: TlsConnector,
3535
}
3636

37-
impl RustTlsClientNetworking {
37+
impl RustlsClientNetworking {
3838
pub fn new(resolver: Arc<Resolver>, connector: TlsConnector) -> Self {
39-
RustTlsClientNetworking {
39+
RustlsClientNetworking {
4040
resolver,
4141
connector,
4242
}
@@ -75,11 +75,11 @@ impl RustTlsClientNetworking {
7575
.with_no_client_auth();
7676

7777
let connector = TlsConnector::from(Arc::new(config));
78-
Ok(RustTlsClientNetworking::new(resolver, connector))
78+
Ok(RustlsClientNetworking::new(resolver, connector))
7979
}
8080
}
8181

82-
impl ClientConnections for RustTlsClientNetworking {
82+
impl ClientConnections for RustlsClientNetworking {
8383
type ClientSocket = MaybeTlsStream;
8484

8585
fn try_open(
@@ -104,7 +104,7 @@ impl ClientConnections for RustTlsClientNetworking {
104104
};
105105
async move {
106106
let stream = TcpStream::connect(addr).await?;
107-
let RustTlsClientNetworking { connector, .. } = self;
107+
let RustlsClientNetworking { connector, .. } = self;
108108

109109
let client = connector.connect(domain?, stream).await.map_err(|err| {
110110
let tls_err = TlsError::HandshakeFailed(err);

runtime/swimos_tls/src/net/mod.rs

Lines changed: 10 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -17,25 +17,23 @@ mod server;
1717
#[cfg(test)]
1818
mod tests;
1919

20-
use std::{net::SocketAddr, sync::Arc};
20+
use std::net::SocketAddr;
2121

22-
pub use client::RustTlsClientNetworking;
22+
pub use client::RustlsClientNetworking;
2323
use futures::future::Either;
2424
use futures::TryFutureExt;
2525
use futures::{future::BoxFuture, FutureExt};
26-
pub use server::{RustTlsListener, RustTlsServerNetworking};
26+
pub use server::{RustTlsListener, RustlsServerNetworking};
2727
use swimos_api::net::Scheme;
2828
use swimos_remote::net::plain::TokioPlainTextNetworking;
2929
use swimos_remote::net::{
30-
dns::{BoxDnsResolver, Resolver},
31-
ClientConnections, ConnResult, IoResult, ServerConnections,
30+
dns::BoxDnsResolver, ClientConnections, ConnResult, IoResult, ServerConnections,
3231
};
3332

3433
use crate::{
35-
config::{CertFormat, CertificateFile, TlsConfig},
34+
config::{CertFormat, CertificateFile},
3635
errors::TlsError,
3736
maybe::MaybeTlsStream,
38-
ClientConfig,
3937
};
4038

4139
use self::server::MaybeRustTlsListener;
@@ -53,18 +51,18 @@ fn load_cert_file(file: CertificateFile) -> Result<Vec<rustls::Certificate>, Tls
5351
}
5452

5553
/// Combined implementation of [`ClientConnections`] and [`ServerConnections`] that wraps
56-
/// [`RustTlsClientNetworking`], [`RustTlsServerNetworking`] and [`TokioPlainTextNetworking`]. The server part is adapted to
54+
/// [`RustlsClientNetworking`], [`RustlsServerNetworking`] and [`TokioPlainTextNetworking`]. The server part is adapted to
5755
/// produce [`MaybeTlsStream`] connections so that there is a unified client/server socket type,
5856
/// inducing an implementation of [`super::ExternalConnections`].
5957
#[derive(Clone)]
6058
pub struct RustNetworking {
61-
client: RustTlsClientNetworking,
62-
server: Either<TokioPlainTextNetworking, RustTlsServerNetworking>,
59+
client: RustlsClientNetworking,
60+
server: Either<TokioPlainTextNetworking, RustlsServerNetworking>,
6361
}
6462

6563
impl RustNetworking {
6664
pub fn new_plain_text(
67-
client: RustTlsClientNetworking,
65+
client: RustlsClientNetworking,
6866
server: TokioPlainTextNetworking,
6967
) -> Self {
7068
RustNetworking {
@@ -73,40 +71,12 @@ impl RustNetworking {
7371
}
7472
}
7573

76-
pub fn new_tls(client: RustTlsClientNetworking, server: RustTlsServerNetworking) -> Self {
74+
pub fn new_tls(client: RustlsClientNetworking, server: RustlsServerNetworking) -> Self {
7775
RustNetworking {
7876
client,
7977
server: Either::Right(server),
8078
}
8179
}
82-
83-
pub fn try_plain_text_from_config(
84-
resolver: Arc<Resolver>,
85-
client_config: ClientConfig,
86-
) -> Result<Self, TlsError> {
87-
let client = RustTlsClientNetworking::try_from_config(resolver.clone(), client_config)?;
88-
let server = TokioPlainTextNetworking::new(resolver);
89-
Ok(RustNetworking {
90-
client,
91-
server: Either::Left(server),
92-
})
93-
}
94-
95-
pub fn try_tls_from_config(
96-
resolver: Arc<Resolver>,
97-
config: TlsConfig,
98-
) -> Result<Self, TlsError> {
99-
let TlsConfig {
100-
client: client_conf,
101-
server: server_conf,
102-
} = config;
103-
let client = RustTlsClientNetworking::try_from_config(resolver, client_conf)?;
104-
let server = RustTlsServerNetworking::try_from(server_conf)?;
105-
Ok(RustNetworking {
106-
client,
107-
server: Either::Right(server),
108-
})
109-
}
11080
}
11181

11282
impl ClientConnections for RustNetworking {

runtime/swimos_tls/src/net/server.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ use crate::{
3737

3838
/// [`ServerConnections`] implementation that only supports secure connections.
3939
#[derive(Clone)]
40-
pub struct RustTlsServerNetworking {
40+
pub struct RustlsServerNetworking {
4141
acceptor: TlsAcceptor,
4242
}
4343

@@ -50,24 +50,24 @@ async fn accept_tls(
5050
Ok((bound_to, RustTlsListener { listener, acceptor }))
5151
}
5252

53-
impl RustTlsServerNetworking {
53+
impl RustlsServerNetworking {
5454
pub fn make_listener(
5555
&self,
5656
addr: SocketAddr,
5757
) -> impl Future<Output = ConnResult<(SocketAddr, RustTlsListener)>> + Send + 'static {
58-
let RustTlsServerNetworking { acceptor } = self;
58+
let RustlsServerNetworking { acceptor } = self;
5959
let acc = acceptor.clone();
6060
accept_tls(acc, addr)
6161
}
6262
}
6363

64-
impl RustTlsServerNetworking {
64+
impl RustlsServerNetworking {
6565
pub fn new(acceptor: TlsAcceptor) -> Self {
66-
RustTlsServerNetworking { acceptor }
66+
RustlsServerNetworking { acceptor }
6767
}
6868
}
6969

70-
impl TryFrom<ServerConfig> for RustTlsServerNetworking {
70+
impl TryFrom<ServerConfig> for RustlsServerNetworking {
7171
type Error = TlsError;
7272

7373
fn try_from(config: ServerConfig) -> Result<Self, Self::Error> {
@@ -108,11 +108,11 @@ impl TryFrom<ServerConfig> for RustTlsServerNetworking {
108108
config.key_log = Arc::new(KeyLogFile::new());
109109
}
110110
let acceptor = TlsAcceptor::from(Arc::new(config));
111-
Ok(RustTlsServerNetworking::new(acceptor))
111+
Ok(RustlsServerNetworking::new(acceptor))
112112
}
113113
}
114114

115-
impl ServerConnections for RustTlsServerNetworking {
115+
impl ServerConnections for RustlsServerNetworking {
116116
type ServerSocket = TlsStream<TcpStream>;
117117

118118
type ListenerType = RustTlsListener;

runtime/swimos_tls/src/net/tests.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ use swimos_remote::net::{
2121
};
2222

2323
use crate::{
24-
CertChain, CertificateFile, ClientConfig, PrivateKey, RustTlsClientNetworking,
25-
RustTlsServerNetworking, ServerConfig,
24+
CertChain, CertificateFile, ClientConfig, PrivateKey, RustlsClientNetworking,
25+
RustlsServerNetworking, ServerConfig,
2626
};
2727

2828
const CERTS_PATH: &str = "test-data/certs";
@@ -68,8 +68,8 @@ fn make_client_config() -> ClientConfig {
6868
#[tokio::test]
6969
async fn perform_handshake() {
7070
let server_net =
71-
RustTlsServerNetworking::try_from(make_server_config()).expect("Invalid server config.");
72-
let client_net = RustTlsClientNetworking::try_from_config(
71+
RustlsServerNetworking::try_from(make_server_config()).expect("Invalid server config.");
72+
let client_net = RustlsClientNetworking::try_from_config(
7373
Arc::new(Resolver::new().await),
7474
make_client_config(),
7575
)

server/swimos_server_app/src/server/builder/mod.rs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@ use ratchet::{
2222
NoExtProvider, WebSocketStream,
2323
};
2424
use swimos_api::{agent::Agent, error::StoreError, store::StoreDisabled};
25+
use swimos_remote::net::plain::TokioPlainTextNetworking;
2526
use swimos_remote::net::{dns::Resolver, ExternalConnections};
26-
use swimos_tls::{ClientConfig, RustNetworking, TlsConfig};
27+
use swimos_tls::{
28+
ClientConfig, RustNetworking, RustlsClientNetworking, RustlsServerNetworking, TlsConfig,
29+
};
2730
use swimos_utilities::routing::route_pattern::RoutePattern;
2831

2932
use crate::{
@@ -175,11 +178,15 @@ impl ServerBuilder {
175178
introspection,
176179
};
177180
if let Some(tls_conf) = tls_config {
178-
let networking = RustNetworking::try_tls_from_config(resolver, tls_conf)?;
181+
let client = RustlsClientNetworking::try_from_config(resolver, tls_conf.client)?;
182+
let server = RustlsServerNetworking::try_from(tls_conf.server)?;
183+
let networking = RustNetworking::new_tls(client, server);
179184
Ok(with_store(bind_to, routes, networking, config)?)
180185
} else {
181-
let networking =
182-
RustNetworking::try_plain_text_from_config(resolver, ClientConfig::default())?;
186+
let client =
187+
RustlsClientNetworking::try_from_config(resolver.clone(), ClientConfig::default())?;
188+
let server = TokioPlainTextNetworking::new(resolver);
189+
let networking = RustNetworking::new_plain_text(client, server);
183190
Ok(with_store(bind_to, routes, networking, config)?)
184191
}
185192
}

0 commit comments

Comments
 (0)