From 913f130fd6e83ece8a6262ae6aa77745c43112a2 Mon Sep 17 00:00:00 2001 From: Samuel Lorch Date: Sat, 10 Feb 2024 21:43:25 +0100 Subject: [PATCH] Add wireguard status --- src/api/mod.rs | 3 +++ src/api/vpn.rs | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/api/mod.rs b/src/api/mod.rs index 38bb2f1..fc88e11 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -29,6 +29,9 @@ pub enum ApiError { #[error(transparent)] ConfigError(#[from] crate::config_manager::ConfigError), + + #[error(transparent)] + IOError(#[from] std::io::Error), } impl Into> for ApiError { diff --git a/src/api/vpn.rs b/src/api/vpn.rs index 0f47071..4322a8b 100644 --- a/src/api/vpn.rs +++ b/src/api/vpn.rs @@ -6,6 +6,7 @@ use crate::{ }; use jsonrpsee::types::Params; use jsonrpsee::RpcModule; +use std::process::Command; pub fn register_methods(module: &mut RpcModule) { module @@ -84,5 +85,8 @@ pub fn register_methods(module: &mut RpcModule) { } pub fn wireguard_status(_: Params, _: &RpcState) -> Result { - Ok("ok".to_string()) + match Command::new("wg").output() { + Ok(out) => Ok(String::from_utf8_lossy(&out.stdout).to_string()), + Err(err) => Err(ApiError::IOError(err)), + } }