[skip ci] consolidate feature for veilid-server

This commit is contained in:
Christien Rioux 2025-01-17 18:43:18 -05:00
parent 85cf70b9a5
commit 766aca4502
3 changed files with 29 additions and 11 deletions

View File

@ -19,8 +19,10 @@ path = "src/main.rs"
default = ["rt-tokio", "veilid-core/default", "otlp-tonic"]
default-async-std = ["rt-async-std", "veilid-core/default-async-std"]
virtual-network = ["veilid-core/virtual-network"]
virtual-network-server = ["veilid-core/virtual-network-server"]
virtual-network = [
"veilid-core/virtual-network",
"veilid-core/virtual-network-server",
]
crypto-test = ["rt-tokio", "veilid-core/crypto-test"]
crypto-test-none = ["rt-tokio", "veilid-core/crypto-test-none"]

View File

@ -93,10 +93,24 @@ pub struct CmdlineArgs {
#[arg(long, hide = true, value_name = "PATH", num_args=0..=1, require_equals=true, default_missing_value = "")]
perfetto: Option<OsString>,
/// Run as an extra daemon on the same machine for testing purposes, specify a number greater than zero to offset the listening ports
/// Run as an extra daemon on the same machine for testing purposes
#[arg(short('n'), long)]
subnode_index: Option<u16>,
/// Run several nodes in parallel on the same machine for testing purposes
///
/// Will run subnodes N though N+(subnode_count-1), where N is 0 or set via --subnode_index
#[arg(long, value_name = "COUNT")]
subnode_count: Option<u16>,
/// Connect to a virtual network router
///
/// Specify either an remote tcp or ws url ('tcp://localhost:5149' or 'ws://localhost:5148')
/// or '' or 'local' to specify using an internally spawned server
#[cfg(feature = "virtual-network")]
#[arg(long, value_name = "URL", default_missing_value = "")]
virtual_router: Option<String>,
/// Only generate a new keypair and print it
///
/// Generate a new keypair for a specific crypto kind and print both the key and its secret to the terminal, then exit immediately.

View File

@ -49,9 +49,9 @@ pub fn load_default_config() -> EyreResult<config::Config> {
server_address: ''
"#;
#[cfg(not(feature = "virtual-network-server"))]
#[cfg(not(feature = "virtual-network"))]
let virtual_network_server_section = "";
#[cfg(feature = "virtual-network-server")]
#[cfg(feature = "virtual-network")]
let virtual_network_server_section = r#"
virtual_network_server:
enabled: false
@ -107,6 +107,7 @@ logging:
enabled: false
testing:
subnode_index: 0
subnode_count: 1
%VIRTUAL_NETWORK_SERVER_SECTION%
core:
capabilities:
@ -720,20 +721,20 @@ pub struct VirtualNetwork {
pub server_address: String,
}
#[cfg(feature = "virtual-network-server")]
#[cfg(feature = "virtual-network")]
#[derive(Debug, Deserialize, Serialize)]
pub struct VirtualNetworkServer {
pub enabled: bool,
pub tcp: VirtualNetworkServerTcp,
pub ws: VirtualNetworkServerWs,
}
#[cfg(feature = "virtual-network-server")]
#[cfg(feature = "virtual-network")]
#[derive(Debug, Deserialize, Serialize)]
pub struct VirtualNetworkServerTcp {
pub listen: bool,
pub listen_address: NamedSocketAddrs,
}
#[cfg(feature = "virtual-network-server")]
#[cfg(feature = "virtual-network")]
#[derive(Debug, Deserialize, Serialize)]
pub struct VirtualNetworkServerWs {
pub listen: bool,
@ -743,7 +744,8 @@ pub struct VirtualNetworkServerWs {
#[derive(Debug, Deserialize, Serialize)]
pub struct Testing {
pub subnode_index: u16,
#[cfg(feature = "virtual-network-server")]
pub subnode_count: u16,
#[cfg(feature = "virtual-network")]
pub virtual_network_server: VirtualNetworkServer,
}
@ -1123,7 +1125,7 @@ impl Settings {
set_config_value!(inner.logging.perfetto.path, value);
set_config_value!(inner.logging.console.enabled, value);
set_config_value!(inner.testing.subnode_index, value);
#[cfg(feature = "virtual-network-server")]
#[cfg(feature = "virtual-network")]
{
set_config_value!(inner.testing.virtual_network_server.enabled, value);
set_config_value!(inner.testing.virtual_network_server.tcp.listen, value);
@ -1729,7 +1731,7 @@ mod tests {
assert_eq!(s.logging.perfetto.path, "");
assert!(!s.logging.console.enabled);
assert_eq!(s.testing.subnode_index, 0);
#[cfg(feature = "virtual-network-server")]
#[cfg(feature = "virtual-network")]
{
assert_eq!(s.testing.virtual_network_server.enabled, false);
assert_eq!(s.testing.virtual_network_server.tcp.listen, false);