[Fix] API

This commit is contained in:
Alex Emmet 2026-03-12 17:30:01 +01:00
commit e6fd851241
8 changed files with 19 additions and 28 deletions

12
Cargo.lock generated
View file

@ -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",
]

View file

@ -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;

View file

@ -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<String>) -> 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())
}

View file

@ -1,5 +1,3 @@
pub mod api;
pub mod omikron_connection;
pub mod omikron_manager;
pub mod server;
pub mod short_link;

View file

@ -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<CertificateDer<'static>> =
certs(&mut cert_reader).collect::<Result<_, _>>()?;

2
src/transport/mod.rs Normal file
View file

@ -0,0 +1,2 @@
pub mod omikron_connection;
pub mod omikron_manager;

View file

@ -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<dyn std::error::Error>> {
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);

View file

@ -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;