From e6fd8512416bf5b5162b9400ea2e54b1f21af584 Mon Sep 17 00:00:00 2001 From: Alex Emmet <111742636+Alex-Emmet@users.noreply.github.com> Date: Thu, 12 Mar 2026 17:30:01 +0100 Subject: [PATCH] [Fix] API --- Cargo.lock | 12 ++++++------ src/main.rs | 3 ++- src/server/api.rs | 9 +-------- src/server/mod.rs | 2 -- src/server/server.rs | 10 +++------- src/transport/mod.rs | 2 ++ src/{server => transport}/omikron_connection.rs | 7 ++++--- src/{server => transport}/omikron_manager.rs | 2 +- 8 files changed, 19 insertions(+), 28 deletions(-) create mode 100644 src/transport/mod.rs rename src/{server => transport}/omikron_connection.rs (99%) rename src/{server => transport}/omikron_manager.rs (94%) diff --git a/Cargo.lock b/Cargo.lock index 2f70fe0..068a32e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1026,7 +1026,7 @@ dependencies = [ [[package]] name = "epsilon-core" version = "0.1.0" -source = "git+https://github.com/Tensamin/Epsilon.git#809a32581843e663d35d4b3222f2cc59371d2786" +source = "git+https://github.com/Tensamin/Epsilon.git#42bee9c93b3669c872cc54dc5d031a7830551922" dependencies = [ "base64", "byteorder", @@ -1038,7 +1038,7 @@ dependencies = [ [[package]] name = "epsilon-native" version = "0.1.0" -source = "git+https://github.com/Tensamin/Epsilon.git#809a32581843e663d35d4b3222f2cc59371d2786" +source = "git+https://github.com/Tensamin/Epsilon.git#42bee9c93b3669c872cc54dc5d031a7830551922" dependencies = [ "epsilon-core", "quinn", @@ -2099,9 +2099,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "opaque-debug" @@ -2766,9 +2766,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ "windows-sys 0.61.2", ] diff --git a/src/main.rs b/src/main.rs index 866d216..8143c9f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,10 +1,11 @@ mod server; mod sql; +mod transport; mod util; -use crate::server::omikron_connection; use crate::sql::sql::initialize_db; use crate::sql::sql::print_users; +use crate::transport::omikron_connection; use crate::util::crypto_helper::load_public_key; use crate::util::crypto_helper::load_secret_key; use crate::util::logger::PrintType; diff --git a/src/server/api.rs b/src/server/api.rs index b216112..61dc86e 100644 --- a/src/server/api.rs +++ b/src/server/api.rs @@ -1,7 +1,7 @@ use crate::get_public_key; -use crate::server::omikron_manager::get_random_omikron; use crate::sql::sql; use crate::sql::user_online_tracker::get_iota_primary_omikron_connection; +use crate::transport::omikron_manager::get_random_omikron; use crate::{ sql::sql::{get_by_user_id, get_omikron_by_id}, util::crypto_helper::public_key_to_base64, @@ -272,10 +272,3 @@ pub async fn handle(path: &str, body_string: Option) -> HttpResponse { .insert_header((header::ACCESS_CONTROL_ALLOW_METHODS, "GET, POST, OPTIONS")) .body(body_bytes) } - -pub fn bad_request() -> (StatusCode, String) { - (StatusCode::BAD_REQUEST, "400 Bad Request".to_string()) -} -pub fn not_found() -> (StatusCode, String) { - (StatusCode::NOT_FOUND, "404 Not Found".to_string()) -} diff --git a/src/server/mod.rs b/src/server/mod.rs index aab6ab6..8645e6e 100644 --- a/src/server/mod.rs +++ b/src/server/mod.rs @@ -1,5 +1,3 @@ pub mod api; -pub mod omikron_connection; -pub mod omikron_manager; pub mod server; pub mod short_link; diff --git a/src/server/server.rs b/src/server/server.rs index c1b0e10..3618eb7 100644 --- a/src/server/server.rs +++ b/src/server/server.rs @@ -1,7 +1,7 @@ use crate::{ log, server::{api, short_link::get_short_link}, - util::file_util::get_directory, + util::file_util::load_file_buf, }; use actix_web::{App, HttpRequest, HttpResponse, HttpServer, Responder, http::header, web}; @@ -10,14 +10,10 @@ use rustls::ServerConfig; use rustls::pki_types::{CertificateDer, PrivateKeyDer}; use rustls_pemfile::{certs, pkcs8_private_keys}; -use std::fs::File; -use std::io::BufReader; - pub async fn start(port: u16) -> anyhow::Result<()> { - let mut cert_reader = - BufReader::new(File::open(format!("{}/certs/cert.pem", get_directory()))?); + let mut cert_reader = load_file_buf("certs", "server_cert.pem")?; - let mut key_reader = BufReader::new(File::open(format!("{}/certs/key.pem", get_directory()))?); + let mut key_reader = load_file_buf("certs", "server_key.pem")?; let cert_chain: Vec> = certs(&mut cert_reader).collect::>()?; diff --git a/src/transport/mod.rs b/src/transport/mod.rs new file mode 100644 index 0000000..4f3953a --- /dev/null +++ b/src/transport/mod.rs @@ -0,0 +1,2 @@ +pub mod omikron_connection; +pub mod omikron_manager; diff --git a/src/server/omikron_connection.rs b/src/transport/omikron_connection.rs similarity index 99% rename from src/server/omikron_connection.rs rename to src/transport/omikron_connection.rs index ec86bdf..504d723 100644 --- a/src/server/omikron_connection.rs +++ b/src/transport/omikron_connection.rs @@ -1,11 +1,12 @@ use crate::{ get_private_key, get_public_key, log, log_cv_in, log_cv_out, log_err, log_in, - server::{omikron_manager, short_link::add_short_link}, + server::short_link::add_short_link, sql::{ connection_status::UserStatus, sql::{self, get_by_user_id, get_by_username, get_iota_by_id, get_omikron_by_id}, user_online_tracker::{self}, }, + transport::omikron_manager, util::{crypto_helper::encrypt, file_util::load_file_vec, logger::PrintType}, }; use base64::{Engine as _, engine::general_purpose::STANDARD}; @@ -1120,9 +1121,9 @@ impl OmikronConnection { // ============================================================================ pub async fn start(port: u16) -> Result<(), Box> { - let cert_pem = load_file_vec("certs", "cert.pem").expect("Error loading Pemfile"); + let cert_pem = load_file_vec("certs", "transport_cert.pem").expect("Error loading Pemfile"); - let key_pem = load_file_vec("certs", "key.pem").expect("Error loading Keyfile"); + let key_pem = load_file_vec("certs", "transport_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); diff --git a/src/server/omikron_manager.rs b/src/transport/omikron_manager.rs similarity index 94% rename from src/server/omikron_manager.rs rename to src/transport/omikron_manager.rs index 7556674..fbee4a9 100644 --- a/src/server/omikron_manager.rs +++ b/src/transport/omikron_manager.rs @@ -1,4 +1,4 @@ -use crate::server::omikron_connection::OmikronConnection; +use crate::transport::omikron_connection::OmikronConnection; use dashmap::DashMap; use once_cell::sync::Lazy; use rand::prelude::IteratorRandom;