[FIX] WTRANSPORT WORKS (it was Alois fault)

This commit is contained in:
Alex Emmet 2026-03-06 20:35:20 +01:00
commit f181fbea9b
2 changed files with 29 additions and 41 deletions

View file

@ -152,7 +152,7 @@ impl OmikronConnection {
// Main Handler Loop
// -------------------------------------------------------------------------
pub async fn handle(self: Arc<Self>, mut receiver: Receiver) {
pub async fn handle(self: Arc<Self>, receiver: Receiver) {
log_in!(
self.id as i64,
PrintType::Omega,
@ -227,7 +227,8 @@ impl OmikronConnection {
async fn handle_unauthenticated(self: Arc<Self>, cv: CommunicationValue) -> OmikronResult<()> {
if !cv.is_type(CommunicationType::identification) {
self.send_error_response(cv.get_id(), CommunicationType::error_not_authenticated)
let _ = self
.send_error_response(cv.get_id(), CommunicationType::error_not_authenticated)
.await;
return Err(OmikronError::NotAuthenticated);
}
@ -280,7 +281,8 @@ impl OmikronConnection {
async fn handle_identified(self: Arc<Self>, cv: CommunicationValue) -> OmikronResult<()> {
if !cv.is_type(CommunicationType::challenge_response) {
self.send_error_response(cv.get_id(), CommunicationType::error_not_authenticated)
let _ = self
.send_error_response(cv.get_id(), CommunicationType::error_not_authenticated)
.await;
return Err(OmikronError::NotAuthenticated);
}
@ -306,7 +308,8 @@ impl OmikronConnection {
log_in!(omikron_id, PrintType::Omega, "Omikron authenticated");
Ok(())
} else {
self.send_error_response(cv.get_id(), CommunicationType::error_invalid_challenge)
let _ = self
.send_error_response(cv.get_id(), CommunicationType::error_invalid_challenge)
.await;
Err(OmikronError::AuthenticationFailed)
}
@ -1114,11 +1117,11 @@ impl OmikronConnection {
pub async fn start(port: u16) -> Result<(), Box<dyn std::error::Error>> {
let _ = aws_lc_rs::default_provider().install_default();
let tls_cfg = load_tls().expect("TLS config failed");
let server_crypto = quinn::crypto::rustls::QuicServerConfig::try_from(tls_cfg)?;
let server_cfg = ServerConfig::with_crypto(Arc::new(server_crypto));
let cert_pem = load_file_vec("certs", "cert.pem").expect("Error loading Pemfile");
let mut host: Host = epsilon_native::host(port, server_cfg).await?;
let key_pem = load_file_vec("certs", "key.pem").expect("Error loading Keyfile");
let mut host: Host = epsilon_native::host(port, cert_pem, key_pem).await?;
log!("OmikronServer listening on port {}", port);
while let Some((sender, receiver)) = host.next().await {
@ -1130,22 +1133,3 @@ pub async fn start(port: u16) -> Result<(), Box<dyn std::error::Error>> {
Ok(())
}
fn load_tls() -> Option<CryptoConfig> {
let _ = aws_lc_rs::default_provider().install_default();
let mut cert_pem = load_file_buf("certs", "cert.pem").ok()?;
let cert_chain = rustls_pemfile::certs(&mut cert_pem)
.collect::<Result<Vec<_>, _>>()
.ok()?;
let key_pem = load_file_vec("certs", "key.pem").ok()?;
let key_der = rustls_pemfile::private_key(&mut &*key_pem).ok()??;
let cfg = CryptoConfig::builder()
.with_no_client_auth()
.with_single_cert(cert_chain, key_der)
.ok()?;
Some(cfg)
}