did stuff?

This commit is contained in:
Rakarake 2026-03-28 20:47:31 +01:00
parent bac4e5d8c6
commit cb0447e53c
3 changed files with 29 additions and 4 deletions

23
Cargo.lock generated
View file

@ -108,6 +108,12 @@ dependencies = [
"tracing", "tracing",
] ]
[[package]]
name = "base64"
version = "0.22.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "2.11.0" version = "2.11.0"
@ -520,6 +526,7 @@ dependencies = [
"log", "log",
"pretty_env_logger", "pretty_env_logger",
"tokio", "tokio",
"tower-http",
] ]
[[package]] [[package]]
@ -898,6 +905,22 @@ dependencies = [
"tracing", "tracing",
] ]
[[package]]
name = "tower-http"
version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"
dependencies = [
"base64",
"bitflags",
"bytes",
"http",
"mime",
"pin-project-lite",
"tower-layer",
"tower-service",
]
[[package]] [[package]]
name = "tower-layer" name = "tower-layer"
version = "0.3.3" version = "0.3.3"

View file

@ -8,3 +8,4 @@ axum = "*"
tokio = { version = "*", features = ["full"] } tokio = { version = "*", features = ["full"] }
log = "0.4" log = "0.4"
pretty_env_logger = "0.4" pretty_env_logger = "0.4"
tower-http = { version = "*", features = ["auth"] }

View file

@ -5,8 +5,6 @@ use log::info;
use tokio::fs; use tokio::fs;
use std::path::PathBuf; use std::path::PathBuf;
const MAXIMUM_PACKET_SIZE: usize = (2 << 20) * 10;
#[derive(Clone)] #[derive(Clone)]
struct AppState { struct AppState {
root: PathBuf, root: PathBuf,
@ -25,14 +23,17 @@ async fn main() -> io::Result<()> {
port_str.parse::<u16>().expect("PORT is malformed") port_str.parse::<u16>().expect("PORT is malformed")
} else { 3236 }; } else { 3236 };
let maximum_packet_size: usize = if let Ok(port_str) = var("MDFBOUNCER_MAXIMUM_PACKET_SIZE") {
port_str.parse::<usize>().expect("MDFBOUNCER_MAXIMUM_PACKET_SIZE is malformed")
} else { (2 << 20) * 10 };
let state = Arc::new(AppState { root: PathBuf::from(target_path) }); let state = Arc::new(AppState { root: PathBuf::from(target_path) });
let app = Router::new() let app = Router::new()
.route("/{*key}", put(put_file)) .route("/{*key}", put(put_file))
.route("/{*key}", delete(delete_file)) .route("/{*key}", delete(delete_file))
.with_state(state) .with_state(state)
.layer(DefaultBodyLimit::max(MAXIMUM_PACKET_SIZE)); .layer(DefaultBodyLimit::max(maximum_packet_size));
let listener = tokio::net::TcpListener::bind(("localhost", port)) let listener = tokio::net::TcpListener::bind(("localhost", port))
.await .await