Add network filters metadata

This commit is contained in:
2024-01-03 19:53:47 +01:00
parent 0710c61909
commit a7bfb80547
5 changed files with 78 additions and 4 deletions

View File

@ -74,3 +74,6 @@ pub const BUILTIN_NETWORK_FILTER_RULES: [&str; 24] = [
"qemu-announce-self",
"qemu-announce-self-rarp",
];
/// List of valid network chains
pub const NETWORK_CHAINS: [&str; 8] = ["root", "mac", "stp", "vlan", "arp", "rarp", "ipv4", "ipv6"];

View File

@ -15,8 +15,9 @@ struct StaticConfig {
oidc_auth_enabled: bool,
iso_mimetypes: &'static [&'static str],
net_mac_prefix: &'static str,
constraints: ServerConstraints,
builtin_nwfilter_rules: &'static [&'static str],
nwfilter_chains: &'static [&'static str],
constraints: ServerConstraints,
}
#[derive(serde::Serialize)]
@ -25,6 +26,12 @@ struct LenConstraints {
max: usize,
}
#[derive(serde::Serialize)]
struct SLenConstraints {
min: i64,
max: i64,
}
#[derive(serde::Serialize)]
struct ServerConstraints {
iso_max_size: usize,
@ -37,6 +44,9 @@ struct ServerConstraints {
net_name_size: LenConstraints,
net_title_size: LenConstraints,
dhcp_reservation_host_name: LenConstraints,
nwfilter_name_size: LenConstraints,
nwfilter_comment_size: LenConstraints,
nwfilter_priority: SLenConstraints,
}
pub async fn static_config(local_auth: LocalAuthEnabled) -> impl Responder {
@ -47,6 +57,7 @@ pub async fn static_config(local_auth: LocalAuthEnabled) -> impl Responder {
iso_mimetypes: &constants::ALLOWED_ISO_MIME_TYPES,
net_mac_prefix: constants::NET_MAC_ADDR_PREFIX,
builtin_nwfilter_rules: &constants::BUILTIN_NETWORK_FILTER_RULES,
nwfilter_chains: &constants::NETWORK_CHAINS,
constraints: ServerConstraints {
iso_max_size: constants::ISO_MAX_SIZE,
@ -71,6 +82,13 @@ pub async fn static_config(local_auth: LocalAuthEnabled) -> impl Responder {
net_title_size: LenConstraints { min: 0, max: 50 },
dhcp_reservation_host_name: LenConstraints { min: 2, max: 250 },
nwfilter_name_size: LenConstraints { min: 2, max: 250 },
nwfilter_comment_size: LenConstraints { min: 0, max: 256 },
nwfilter_priority: SLenConstraints {
min: -1000,
max: 1000,
},
},
})
}