reworked https support

This commit is contained in:
2025-02-02 19:24:33 -08:00
parent 7e7a9a9a9a
commit 1b830a63fe
2 changed files with 38 additions and 22 deletions

View File

@ -10,10 +10,11 @@ use std::{
#[cfg(feature = "https")]
use rustls::{
pki_types::{pem::PemObject, CertificateDer, PrivateKeyDer},
ServerConfig, ServerConnection,
ServerConfig, ServerConnection, StreamOwned,
};
use crate::{
client,
http::{request::RequestLine, Request, Response},
Client,
};
@ -49,13 +50,19 @@ impl Server {
let on_request = Arc::clone(&self.on_request);
#[cfg(feature = "https")]
let tls_config = self.tls_config.clone().unwrap();
let tls_config = self.tls_config.clone();
thread::spawn(move || {
#[cfg(feature = "https")]
let connection = ServerConnection::new(tls_config).unwrap();
#[cfg(feature = "https")]
let stream = rustls::StreamOwned::new(connection, stream);
let stream = if let Some(tls_config) = tls_config {
let connection = ServerConnection::new(tls_config).unwrap();
client::Stream::Tls(StreamOwned::new(connection, stream))
} else {
client::Stream::Tcp(stream)
};
#[cfg(not(feature = "https"))]
let stream = client::Stream::Tcp(stream);
let mut client = Client::new(stream);