From 53f72e13be272b205bd7a73a2617a180d3505692 Mon Sep 17 00:00:00 2001 From: XOR-op <17672363+XOR-op@users.noreply.github.com> Date: Sat, 25 Mar 2023 21:57:11 +0800 Subject: [PATCH] fix: tun api --- boltapi/src/schema.rs | 6 ++++++ boltconn/src/external/api_server.rs | 20 +++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/boltapi/src/schema.rs b/boltapi/src/schema.rs index 9004044..b08c5bc 100644 --- a/boltapi/src/schema.rs +++ b/boltapi/src/schema.rs @@ -88,3 +88,9 @@ pub struct TrafficResp { pub upload_speed: Option, pub download_speed: Option, } + +#[derive(Serialize, Deserialize, Debug, Clone)] +#[serde(deny_unknown_fields)] +pub struct TunStatusSchema { + pub enabled: bool, +} diff --git a/boltconn/src/external/api_server.rs b/boltconn/src/external/api_server.rs index e495c5e..8fcca90 100644 --- a/boltconn/src/external/api_server.rs +++ b/boltconn/src/external/api_server.rs @@ -11,7 +11,7 @@ use axum::routing::{delete, get, post}; use axum::{Json, Router}; use boltapi::{ GetEavesdropDataResp, GetEavesdropRangeReq, GetGroupRespSchema, ProxyData, SetGroupReqSchema, - TrafficResp, + TrafficResp, TunStatusSchema, }; use serde_json::json; use std::collections::HashMap; @@ -117,22 +117,20 @@ impl ApiServer { } async fn get_tun_configure(State(server): State) -> Json { - Json(json!(server.tun_configure.lock().unwrap().get_status())) + Json(json!(TunStatusSchema { + enabled: server.tun_configure.lock().unwrap().get_status() + })) } async fn set_tun_configure( State(server): State, - Json(flag): Json, + Json(status): Json, ) -> Json { - Json(json!(if let Some(flag) = flag.as_bool() { - if flag { - server.tun_configure.lock().unwrap().enable().is_ok() - } else { - server.tun_configure.lock().unwrap().disable(); - true - } + Json(json!(if status.enabled { + server.tun_configure.lock().unwrap().enable().is_ok() } else { - false + server.tun_configure.lock().unwrap().disable(); + true })) }