checkpoint: implement wgcloak v1 foundations

This commit is contained in:
h3cx committed 2026-09-14 22:55:07 +02:00
commit 313ab00765
45 files changed
+12058

No files matched your search

+45
View File
@@ -0,0 +1,45 @@
#[path = "../src/control.rs"]
mod control;
use std::os::unix::fs::PermissionsExt;
use tempfile::tempdir;
use tokio::time::{sleep, Duration};
#[tokio::test]
async fn control_commands_and_socket_permissions() {
let dir = tempdir().unwrap();
let path = dir.path().join("control.sock");
let state = control::ControlState::default();
state.set_status("ready").await;
state.set_stats_json("{\"packets\":3}").await;
let server = control::ControlServer::bind(&path, state.clone())
.await
.unwrap();
assert_eq!(
std::fs::metadata(&path).unwrap().permissions().mode() & 0o777,
0o600
);
let task = tokio::spawn(server.run());
sleep(Duration::from_millis(10)).await;
assert!(control::send_command(&path, "status")
.await
.unwrap()
.contains("ready"));
assert!(control::send_command(&path, "stats")
.await
.unwrap()
.contains("packets"));
assert!(control::send_command(&path, "reconnect")
.await
.unwrap()
.contains("true"));
assert!(control::send_command(&path, "reload")
.await
.unwrap()
.contains("true"));
assert!(control::send_command(&path, "shutdown")
.await
.unwrap()
.contains("true"));
task.await.unwrap().unwrap();
}