From 7589ac27f80c47e37e7c9d7dced8b982b514cdc1 Mon Sep 17 00:00:00 2001 From: Ara Sadoyan Date: Wed, 26 Feb 2025 14:42:11 +0100 Subject: [PATCH] Cleanup --- src/utils/compare.rs | 10 ++++++---- src/utils/discovery.rs | 7 ------- src/web/webserver.rs | 16 +++++++++++----- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/utils/compare.rs b/src/utils/compare.rs index 248b6c7..c931905 100644 --- a/src/utils/compare.rs +++ b/src/utils/compare.rs @@ -1,18 +1,19 @@ use dashmap::DashMap; use std::sync::atomic::AtomicUsize; -use tokio::sync::{RwLockReadGuard, RwLockWriteGuard}; +use tokio::sync::RwLockReadGuard; +/* #[allow(dead_code)] pub fn dashmaps(map1: &RwLockWriteGuard, AtomicUsize)>>, map2: &DashMap, AtomicUsize)>) -> bool { if map1.len() != map2.len() { - return false; // Different number of keys + return false; } for entry1 in map1.iter() { let key = entry1.key(); - let (vec1, _) = entry1.value(); // Extract value + let (vec1, _) = entry1.value(); if let Some(entry2) = map2.get(key) { - let (vec2, _) = entry2.value(); // Correctly extract value + let (vec2, _) = entry2.value(); if vec1 != vec2 { return false; } @@ -22,6 +23,7 @@ pub fn dashmaps(map1: &RwLockWriteGuard, Ato } true } +*/ #[allow(dead_code)] pub fn dm(map1: &RwLockReadGuard, AtomicUsize)>>, map2: &DashMap, AtomicUsize)>) -> bool { diff --git a/src/utils/discovery.rs b/src/utils/discovery.rs index c245162..3904793 100644 --- a/src/utils/discovery.rs +++ b/src/utils/discovery.rs @@ -26,9 +26,6 @@ pub trait Discovery { impl Discovery for APIUpstreamProvider { async fn run(&self, toreturn: Sender, AtomicUsize)>>) { webserver::run_server(toreturn).await; - // let _ = tokio::spawn(async move { webserver::run_server(toreturn).await }); - // let (_rtx, mut rrx) = tokio::sync::mpsc::channel::(1); - // let _ = rrx.blocking_recv(); } } @@ -63,12 +60,8 @@ pub async fn watch_file(fp: String, mut toreturn: Sender(1); let _ = rrx.blocking_recv(); - // loop { - // std::thread::sleep(Duration::from_secs(50)); - // } } }); let mut start = Instant::now(); diff --git a/src/web/webserver.rs b/src/web/webserver.rs index 8f38a26..d049777 100644 --- a/src/web/webserver.rs +++ b/src/web/webserver.rs @@ -1,7 +1,8 @@ use axum::body::Body; use axum::http::{Response, StatusCode}; -use axum::routing::post; -use axum::{routing::get, Json, Router}; +use axum::response::IntoResponse; +use axum::routing::{delete, get, head, post, put}; +use axum::{Json, Router}; use dashmap::DashMap; use futures::channel::mpsc::Sender; use futures::SinkExt; @@ -19,7 +20,11 @@ struct UpstreamData { pub async fn run_server(mut toreturn: Sender, AtomicUsize)>>) { let mut tr = toreturn.clone(); let app = Router::new() - .route("/", get(getconfig)) + .route("/{*wildcard}", get(getconfig)) + .route("/{*wildcard}", post(getconfig)) + .route("/{*wildcard}", put(getconfig)) + .route("/{*wildcard}", head(getconfig)) + .route("/{*wildcard}", delete(getconfig)) .route( "/conf", post(|up: String| async move { @@ -45,8 +50,9 @@ pub async fn run_server(mut toreturn: Sender axum::serve(listener, app).await.unwrap(); } -async fn getconfig() -> String { - "Hello from Axum API inside Pingora!\n".to_string() +async fn getconfig() -> impl IntoResponse { + "Hello from Axum API inside Pingora!\n".to_string(); + Response::builder().status(StatusCode::BAD_GATEWAY).body(Body::from("No live upstream found!\n")).unwrap() } // curl -XPOST -H 'Content-Type: application/json' --data-binary @./push.json 127.0.0.1:3000/json // curl -XPOST --data-binary @./etc/upstreams.txt 127.0.0.1:3000/conf