refactor: separeted forwarder definition for more flexibility

This commit is contained in:
Jun Kurihara 2023-08-08 17:59:20 +09:00
commit 43b004cf6e
No known key found for this signature in database
GPG key ID: D992B3E3DE1DED23
5 changed files with 84 additions and 15 deletions

View file

@ -8,9 +8,14 @@ mod log;
mod proxy;
mod utils;
use crate::{error::*, globals::Globals, handler::HttpMessageHandlerBuilder, log::*, proxy::ProxyBuilder};
use crate::{
error::*,
globals::Globals,
handler::{Forwarder, HttpMessageHandlerBuilder},
log::*,
proxy::ProxyBuilder,
};
use futures::future::select_all;
use hyper::Client;
// use hyper_trust_dns::TrustDnsResolver;
use std::sync::Arc;
@ -62,17 +67,10 @@ where
request_count: Default::default(),
runtime_handle: runtime_handle.clone(),
});
// let connector = TrustDnsResolver::default().into_rustls_webpki_https_connector();
let connector = hyper_rustls::HttpsConnectorBuilder::new()
.with_webpki_roots()
.https_or_http()
.enable_http1()
.enable_http2()
.build();
// TODO: HTTP2 only client is needed for http2 cleartext case
let msg_handler = HttpMessageHandlerBuilder::default()
.forwarder(Arc::new(Client::builder().build::<_, hyper::Body>(connector)))
.forwarder(Arc::new(Forwarder::new().await))
.globals(globals.clone())
.build()?;