Skip to content

Commit c47a0cc

Browse files
committed
Add TLS support
1 parent 6da925a commit c47a0cc

File tree

3 files changed

+83
-8
lines changed

3 files changed

+83
-8
lines changed

Cargo.lock

Lines changed: 53 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ edition = "2018"
77
[dependencies]
88
omnistreams = { path = "../omnistreams/omnistreams-rs" }
99
futures = "0.1"
10-
warp = "0.1"
10+
warp = { version = "0.1", features = ["tls"] }
1111
serde = { version = "1.0", features = ["derive"] }
1212
serde_json = "1.0"
1313
uuid = { version = "0.7", features = ["serde", "v4"] }

src/main.rs

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ fn main() {
3636
.long("id-type")
3737
.value_name("ID TYPE")
3838
.takes_value(true))
39+
.arg(Arg::with_name("key")
40+
.long("key")
41+
.value_name("TLS_KEY")
42+
.takes_value(true))
43+
.arg(Arg::with_name("cert")
44+
.long("cert")
45+
.value_name("TLS_CERT")
46+
.takes_value(true))
3947
.get_matches();
4048

4149
let port = matches.value_of("port").unwrap_or("9001");
@@ -149,12 +157,26 @@ fn main() {
149157
.or(omnis)
150158
.or(download);
151159

152-
let server_future = warp::serve(routes)
153-
.bind(addr.parse::<SocketAddrV4>().expect("parse address"));
154160

155-
rt::run(rt::lazy(|| {
156-
rt::spawn(done_stream);
157-
rt::spawn(server_future);
158-
Ok(())
159-
}));
161+
let key = matches.value_of("key");
162+
let cert = matches.value_of("cert");
163+
164+
if key.is_some() && cert.is_some() {
165+
let server_future = warp::serve(routes)
166+
.tls(cert.unwrap(), key.unwrap())
167+
.bind(addr.parse::<SocketAddrV4>().expect("parse address"));
168+
rt::run(rt::lazy(|| {
169+
rt::spawn(done_stream);
170+
rt::spawn(server_future);
171+
Ok(())
172+
}));
173+
}
174+
else {
175+
let server_future = warp::serve(routes).bind(addr.parse::<SocketAddrV4>().expect("parse address"));
176+
rt::run(rt::lazy(|| {
177+
rt::spawn(done_stream);
178+
rt::spawn(server_future);
179+
Ok(())
180+
}));
181+
}
160182
}

0 commit comments

Comments
 (0)