Merge branch 'main' of github.com:sadoyan/aralez

This commit is contained in:
Ara Sadoyan
2026-09-28 11:51:23 +02:00
13 changed files with 76 additions and 46 deletions
+6 -8
View File
@@ -128,7 +128,7 @@ impl ProxyHttp for LB {
None => return Ok(false),
Some(ref innermap) => {
if let Some(auth) = _ctx.extraparams.authentication.as_ref().or(innermap.authorization.as_ref()) {
if !authenticate(&auth, session).await {
if !authenticate(auth, session).await {
let _ = session.respond_error(401).await;
return Ok(true);
}
@@ -227,7 +227,7 @@ impl ProxyHttp for LB {
peer.options.tcp_recv_buf = Some(128 * 1024);
End of experimental options
*/
if let Some(_) = ctx.extraparams.sticky_sessions {
if ctx.extraparams.sticky_sessions.is_some() {
let mut s = String::with_capacity(64);
write!(
&mut s,
@@ -347,12 +347,10 @@ impl ProxyHttp for LB {
};
calc_metrics(m);
ACTIVE_SESSIONS.dec();
if let Some(_) = ctx.x4xx_limit.or(ctx.extraparams.x4xx_limit) {
if (400..=499).contains(&response_code) {
if let Some(ip) = session.client_addr().and_then(|a| a.as_inet()).map(|i| i.ip()) {
let current = REQUESTS_4XX.get(&ip).unwrap_or(0);
REQUESTS_4XX.insert(ip, current + 1);
}
if ctx.x4xx_limit.or(ctx.extraparams.x4xx_limit).is_some() && (400..=499).contains(&response_code) {
if let Some(ip) = session.client_addr().and_then(|a| a.as_inet()).map(|i| i.ip()) {
let current = REQUESTS_4XX.get(&ip).unwrap_or(0);
REQUESTS_4XX.insert(ip, current + 1);
}
}
access_log(response_code, &self.request_summary(session, ctx), session).await;
+3 -4
View File
@@ -68,7 +68,7 @@ pub fn run() {
client_headers: ch_config,
server_headers: sh_config,
extraparams: ec_config,
cache_enabled: cache_enabled,
cache_enabled,
};
// let al = cfg.access_log.clone().unwrap_or("none".to_string());
// init_access_log(al.as_str());
@@ -164,8 +164,8 @@ pub fn run() {
if let Err(e) = write_pid_file(pf.as_str()) {
panic!("Failed to write PID file: {} : {}", pf, e);
}
let mut signals = Signals::new(&[SIGINT, SIGTERM, SIGQUIT]).unwrap();
for sig in signals.forever() {
let mut signals = Signals::new([SIGINT, SIGTERM, SIGQUIT]).unwrap();
if let Some(sig) = signals.forever().next() {
match sig {
SIGINT => info!("SIGINT received! Exiting..."),
SIGTERM => info!("SIGTERM received! Exiting..."),
@@ -175,6 +175,5 @@ pub fn run() {
}
_ => unreachable!(),
}
break;
}
}
+4 -5
View File
@@ -67,7 +67,7 @@ pub async fn run_server(config: &APIUpstreamProvider, mut to_return: mpsc::Sende
let mut static_handle: Option<tokio::task::JoinHandle<()>> = None;
if let (Some(address), Some(folder)) = (&config.file_server_address, &config.file_server_folder) {
let static_listen = port_is_available("File Server", &address).await;
let static_listen = port_is_available("File Server", address).await;
let static_files = ServeDir::new(folder);
let static_serve: Router = Router::new().fallback_service(static_files);
info!("Starting file server on: {}", address);
@@ -86,10 +86,9 @@ pub async fn run_server(config: &APIUpstreamProvider, mut to_return: mpsc::Sende
let (tx, mut rx) = mpsc::channel(1);
std::thread::spawn(move || {
let mut signals = Signals::new(&[SIGQUIT]).unwrap();
for sig in signals.forever() {
let mut signals = Signals::new([SIGQUIT]).unwrap();
if let Some(sig) = signals.forever().next() {
tx.blocking_send(sig).unwrap();
break;
}
});
rx.recv().await;
@@ -109,7 +108,7 @@ async fn conf(State(st): State<AppState>, Query(params): Query<HashMap<String, S
let parsed = noyalib::from_str::<Config>(strcontent);
match parsed {
Ok(_) => {
if let Some(_) = params.get("save") {
if params.contains_key("save") {
tokio::spawn(async move { apply_config(content.as_str(), st, true).await });
} else {
tokio::spawn(async move { apply_config(content.as_str(), st, false).await });