summaryrefslogtreecommitdiffstats
path: root/src/api/debug.rs
blob: 01b7bc090d1f8869cbf7a7bb23277b82efd542cb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//! /debug/* handlers (only routed with --debug-api).

use axum::{Json, extract::State, http::StatusCode};
use tracing::info;

use crate::state::AppState;
use crate::transport::firewall::FirewallRules;

pub(crate) async fn get_debug_firewall(State(state): State<AppState>) -> Json<FirewallRules> {
    Json(state.firewall.rules())
}

pub(crate) async fn put_debug_firewall(
    State(state): State<AppState>,
    Json(rules): Json<FirewallRules>,
) -> StatusCode {
    info!(inbound = ?rules.inbound, outbound = ?rules.outbound, "Firewall rules replaced");
    state.firewall.set_rules(rules);
    StatusCode::NO_CONTENT
}