feat: complete wgcloak v1 transports
This commit is contained in:
1 parent
49ec9d8c33
commit
cedab4910e
47 files changed
+2849
-400
No files matched your search
@@ -0,0 +1,50 @@
|
||||
use wgcloak::config::{Config, ServerConfig, MAX_APPLICATION_DATAGRAM_SIZE};
|
||||
|
||||
const SECRET: &str = "MDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWY=";
|
||||
|
||||
fn server_text(max_datagram_size: Option<u16>) -> String {
|
||||
let network = max_datagram_size
|
||||
.map(|value| format!("[network]\nmax_datagram_size = {value}\n"))
|
||||
.unwrap_or_default();
|
||||
format!(
|
||||
"[server]\nlisten = \"::1\"\n[backend]\ntarget = \"127.0.0.1:51820\"\n{network}[transports.direct_udp]\nport = 51830\n[[auth.clients]]\nid = \"test\"\nsecret = \"{SECRET}\"\n"
|
||||
)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn server_datagram_capability_defaults_and_accepts_boundary() {
|
||||
let Config::Server(defaults) = Config::from_str(&server_text(None)).unwrap() else {
|
||||
panic!("expected server configuration");
|
||||
};
|
||||
assert_eq!(defaults.network.max_datagram_size, 1200);
|
||||
|
||||
let Config::Server(config) =
|
||||
Config::from_str(&server_text(Some(MAX_APPLICATION_DATAGRAM_SIZE))).unwrap()
|
||||
else {
|
||||
panic!("expected server configuration");
|
||||
};
|
||||
config.validate().unwrap();
|
||||
assert_eq!(
|
||||
config.network.max_datagram_size,
|
||||
MAX_APPLICATION_DATAGRAM_SIZE
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn server_datagram_capability_rejects_unsupported_size() {
|
||||
let Config::Server(config) =
|
||||
Config::from_str(&server_text(Some(MAX_APPLICATION_DATAGRAM_SIZE + 1))).unwrap()
|
||||
else {
|
||||
panic!("expected server configuration");
|
||||
};
|
||||
let error = config.validate().unwrap_err().to_string();
|
||||
assert!(error.contains("network.max_datagram_size"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn server_config_type_remains_constructible_from_toml() {
|
||||
let Config::Server(config): Config = Config::from_str(&server_text(Some(1400))).unwrap() else {
|
||||
panic!("expected server configuration");
|
||||
};
|
||||
let _: ServerConfig = config;
|
||||
}
|
||||
Reference in new issue
Block a user