use std::sync::LazyLock;
static RUSTLS_CLIENT_CONFIG: LazyLock<rustls::ClientConfig> = LazyLock::new(connector_internal);
include!(concat!(env!("OUT_DIR"), "/riot_games_const_pem.rs"));
pub(crate) fn connector_internal() -> rustls::ClientConfig {
let roots = rustls::RootCertStore {
roots: vec![cert::DECODED_CERT],
};
rustls::ClientConfig::builder()
.with_root_certificates(roots)
.with_no_client_auth()
}
#[cfg(feature = "ws")]
pub use ws::*;
#[cfg(feature = "ws")]
mod ws {
use std::sync::Arc;
use super::RUSTLS_CLIENT_CONFIG;
pub type TlsType = Arc<rustls::ClientConfig>;
pub fn wrap_connector(tls: &Arc<rustls::ClientConfig>) -> tungstenite::Connector {
tungstenite::Connector::Rustls(tls.clone())
}
pub fn connector() -> TlsType {
Arc::new(RUSTLS_CLIENT_CONFIG.clone())
}
}
#[cfg(feature = "__hyper_rustls")]
pub use http::*;
#[cfg(feature = "__hyper_rustls")]
mod http {
use hyper_util::client::legacy::connect;
use super::RUSTLS_CLIENT_CONFIG;
pub type Connector = hyper_rustls::HttpsConnector<connect::HttpConnector>;
pub fn https_connector() -> Connector {
let tls = RUSTLS_CLIENT_CONFIG.clone();
hyper_rustls::HttpsConnectorBuilder::new()
.with_tls_config(tls.clone())
.https_only()
.enable_http1()
.build()
}
}