Early data option
This commit is contained in:
parent
13ce9f1891
commit
dc2819e028
2 changed files with 19 additions and 7 deletions
|
|
@ -105,7 +105,18 @@ pub async fn play(
|
||||||
.dangerous()
|
.dangerous()
|
||||||
.with_custom_certificate_verifier(Arc::new(DummyCertVerifier))
|
.with_custom_certificate_verifier(Arc::new(DummyCertVerifier))
|
||||||
.with_no_client_auth();
|
.with_no_client_auth();
|
||||||
|
let mut enable_early_data = false;
|
||||||
|
for (var, val) in std::env::vars() {
|
||||||
|
match var.as_str() {
|
||||||
|
"EARLYDATA" => enable_early_data = val == "1",
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if enable_early_data {
|
||||||
|
config.enable_early_data = true;
|
||||||
|
} else {
|
||||||
config.resumption = Resumption::disabled();
|
config.resumption = Resumption::disabled();
|
||||||
|
}
|
||||||
let config = Arc::new(config);
|
let config = Arc::new(config);
|
||||||
for (id, (server_name, records)) in records.iter() {
|
for (id, (server_name, records)) in records.iter() {
|
||||||
let connector = TlsConnector::from(config.clone());
|
let connector = TlsConnector::from(config.clone());
|
||||||
|
|
|
||||||
|
|
@ -59,9 +59,10 @@ pub async fn play(
|
||||||
match tls_mode {
|
match tls_mode {
|
||||||
TlsMode::Both | TlsMode::Server => {
|
TlsMode::Both | TlsMode::Server => {
|
||||||
let mut resolver = ResolvesServerCertUsingSni::new();
|
let mut resolver = ResolvesServerCertUsingSni::new();
|
||||||
let config = tokio_rustls::rustls::ServerConfig::builder()
|
let mut config = tokio_rustls::rustls::ServerConfig::builder()
|
||||||
.with_no_client_auth()
|
.with_no_client_auth()
|
||||||
.with_cert_resolver(Arc::new(ResolvesServerCertUsingSni::new()));
|
.with_cert_resolver(Arc::new(ResolvesServerCertUsingSni::new()));
|
||||||
|
config.max_early_data_size = 8192;
|
||||||
for file in std::fs::read_dir(cert_path).unwrap_or_else(|e| {
|
for file in std::fs::read_dir(cert_path).unwrap_or_else(|e| {
|
||||||
panic!("Cannot read certificate directory `{cert_path}`: {e:?}")
|
panic!("Cannot read certificate directory `{cert_path}`: {e:?}")
|
||||||
}) {
|
}) {
|
||||||
|
|
@ -126,11 +127,11 @@ pub async fn play(
|
||||||
|
|
||||||
// Config requires resolver, keys can be added to resolver, creating a key requires config. WTF!?
|
// Config requires resolver, keys can be added to resolver, creating a key requires config. WTF!?
|
||||||
// So we have to re-create config.
|
// So we have to re-create config.
|
||||||
let config = Arc::new(
|
let mut config = tokio_rustls::rustls::ServerConfig::builder()
|
||||||
tokio_rustls::rustls::ServerConfig::builder()
|
|
||||||
.with_no_client_auth()
|
.with_no_client_auth()
|
||||||
.with_cert_resolver(Arc::new(resolver)),
|
.with_cert_resolver(Arc::new(resolver));
|
||||||
);
|
config.max_early_data_size = 8192;
|
||||||
|
let config = Arc::new(config);
|
||||||
|
|
||||||
let listener = TcpListener::bind(listen_addr).await.unwrap();
|
let listener = TcpListener::bind(listen_addr).await.unwrap();
|
||||||
sync_sender.send(()).unwrap();
|
sync_sender.send(()).unwrap();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue