This commit is contained in:
@@ -96,28 +96,28 @@ impl NetworkInfo {
|
||||
return Err(StructureExtraction("network name is invalid!").into());
|
||||
}
|
||||
|
||||
if let Some(n) = &self.title {
|
||||
if n.contains('\n') {
|
||||
return Err(StructureExtraction("Network title contain newline char!").into());
|
||||
}
|
||||
if let Some(n) = &self.title
|
||||
&& n.contains('\n')
|
||||
{
|
||||
return Err(StructureExtraction("Network title contain newline char!").into());
|
||||
}
|
||||
|
||||
if let Some(dev) = &self.device {
|
||||
if !regex!("^[a-zA-Z0-9]+$").is_match(dev) {
|
||||
return Err(StructureExtraction("Network device name is invalid!").into());
|
||||
}
|
||||
if let Some(dev) = &self.device
|
||||
&& !regex!("^[a-zA-Z0-9]+$").is_match(dev)
|
||||
{
|
||||
return Err(StructureExtraction("Network device name is invalid!").into());
|
||||
}
|
||||
|
||||
if let Some(bridge) = &self.bridge_name {
|
||||
if !regex!("^[a-zA-Z0-9]+$").is_match(bridge) {
|
||||
return Err(StructureExtraction("Network bridge name is invalid!").into());
|
||||
}
|
||||
if let Some(bridge) = &self.bridge_name
|
||||
&& !regex!("^[a-zA-Z0-9]+$").is_match(bridge)
|
||||
{
|
||||
return Err(StructureExtraction("Network bridge name is invalid!").into());
|
||||
}
|
||||
|
||||
if let Some(domain) = &self.domain {
|
||||
if !regex!("^[a-zA-Z0-9.]+$").is_match(domain) {
|
||||
return Err(StructureExtraction("Domain name is invalid!").into());
|
||||
}
|
||||
if let Some(domain) = &self.domain
|
||||
&& !regex!("^[a-zA-Z0-9.]+$").is_match(domain)
|
||||
{
|
||||
return Err(StructureExtraction("Domain name is invalid!").into());
|
||||
}
|
||||
|
||||
let mut ips = Vec::with_capacity(2);
|
||||
@@ -303,16 +303,16 @@ impl NetworkInfo {
|
||||
|
||||
/// Check if at least one NAT definition was specified on this interface
|
||||
pub fn has_nat_def(&self) -> bool {
|
||||
if let Some(ipv4) = &self.ip_v4 {
|
||||
if ipv4.nat.is_some() {
|
||||
return true;
|
||||
}
|
||||
if let Some(ipv4) = &self.ip_v4
|
||||
&& ipv4.nat.is_some()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if let Some(ipv6) = &self.ip_v6 {
|
||||
if ipv6.nat.is_some() {
|
||||
return true;
|
||||
}
|
||||
if let Some(ipv6) = &self.ip_v6
|
||||
&& ipv6.nat.is_some()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
false
|
||||
|
@@ -43,14 +43,12 @@ impl From<&String> for NetworkFilterMacAddressOrVar {
|
||||
fn extract_mac_address_or_var(
|
||||
n: &Option<NetworkFilterMacAddressOrVar>,
|
||||
) -> anyhow::Result<Option<String>> {
|
||||
if let Some(mac) = n {
|
||||
if !mac.is_valid() {
|
||||
return Err(NetworkFilterExtraction(format!(
|
||||
"Invalid mac address or variable! {}",
|
||||
mac.0
|
||||
))
|
||||
.into());
|
||||
}
|
||||
if let Some(mac) = n
|
||||
&& !mac.is_valid()
|
||||
{
|
||||
return Err(
|
||||
NetworkFilterExtraction(format!("Invalid mac address or variable! {}", mac.0)).into(),
|
||||
);
|
||||
}
|
||||
|
||||
Ok(n.as_ref().map(|n| n.0.to_string()))
|
||||
@@ -83,34 +81,34 @@ impl<const V: usize> From<&String> for NetworkFilterIPOrVar<V> {
|
||||
fn extract_ip_or_var<const V: usize>(
|
||||
n: &Option<NetworkFilterIPOrVar<V>>,
|
||||
) -> anyhow::Result<Option<String>> {
|
||||
if let Some(ip) = n {
|
||||
if !ip.is_valid() {
|
||||
return Err(NetworkFilterExtraction(format!(
|
||||
"Invalid IPv{V} address or variable! {}",
|
||||
ip.0
|
||||
))
|
||||
.into());
|
||||
}
|
||||
if let Some(ip) = n
|
||||
&& !ip.is_valid()
|
||||
{
|
||||
return Err(NetworkFilterExtraction(format!(
|
||||
"Invalid IPv{V} address or variable! {}",
|
||||
ip.0
|
||||
))
|
||||
.into());
|
||||
}
|
||||
|
||||
Ok(n.as_ref().map(|n| n.0.to_string()))
|
||||
}
|
||||
|
||||
fn extract_ip_mask<const V: usize>(n: Option<u8>) -> anyhow::Result<Option<u8>> {
|
||||
if let Some(mask) = n {
|
||||
if !net_utils::is_mask_valid(V, mask) {
|
||||
return Err(NetworkFilterExtraction(format!("Invalid IPv{V} mask! {mask}")).into());
|
||||
}
|
||||
if let Some(mask) = n
|
||||
&& !net_utils::is_mask_valid(V, mask)
|
||||
{
|
||||
return Err(NetworkFilterExtraction(format!("Invalid IPv{V} mask! {mask}")).into());
|
||||
}
|
||||
|
||||
Ok(n)
|
||||
}
|
||||
|
||||
fn extract_nw_filter_comment(n: &Option<String>) -> anyhow::Result<Option<String>> {
|
||||
if let Some(comment) = n {
|
||||
if comment.len() > 256 || comment.contains('\"') || comment.contains('\n') {
|
||||
return Err(NetworkFilterExtraction(format!("Invalid comment! {comment}")).into());
|
||||
}
|
||||
if let Some(comment) = n
|
||||
&& (comment.len() > 256 || comment.contains('\"') || comment.contains('\n'))
|
||||
{
|
||||
return Err(NetworkFilterExtraction(format!("Invalid comment! {comment}")).into());
|
||||
}
|
||||
|
||||
Ok(n.clone())
|
||||
@@ -869,12 +867,10 @@ impl NetworkFilter {
|
||||
);
|
||||
}
|
||||
|
||||
if let Some(priority) = self.priority {
|
||||
if !(-1000..=1000).contains(&priority) {
|
||||
return Err(
|
||||
NetworkFilterExtraction("Network priority is invalid!".to_string()).into(),
|
||||
);
|
||||
}
|
||||
if let Some(priority) = self.priority
|
||||
&& !(-1000..=1000).contains(&priority)
|
||||
{
|
||||
return Err(NetworkFilterExtraction("Network priority is invalid!".to_string()).into());
|
||||
}
|
||||
|
||||
for fref in &self.join_filters {
|
||||
|
@@ -118,22 +118,22 @@ impl VMInfo {
|
||||
XMLUuid::new_random()
|
||||
};
|
||||
|
||||
if let Some(n) = &self.genid {
|
||||
if !n.is_valid() {
|
||||
return Err(StructureExtraction("VM genid is invalid!").into());
|
||||
}
|
||||
if let Some(n) = &self.genid
|
||||
&& !n.is_valid()
|
||||
{
|
||||
return Err(StructureExtraction("VM genid is invalid!").into());
|
||||
}
|
||||
|
||||
if let Some(n) = &self.title {
|
||||
if n.contains('\n') {
|
||||
return Err(StructureExtraction("VM title contain newline char!").into());
|
||||
}
|
||||
if let Some(n) = &self.title
|
||||
&& n.contains('\n')
|
||||
{
|
||||
return Err(StructureExtraction("VM title contain newline char!").into());
|
||||
}
|
||||
|
||||
if let Some(group) = &self.group {
|
||||
if !regex!("^[a-zA-Z0-9]+$").is_match(&group.0) {
|
||||
return Err(StructureExtraction("VM group name is invalid!").into());
|
||||
}
|
||||
if let Some(group) = &self.group
|
||||
&& !regex!("^[a-zA-Z0-9]+$").is_match(&group.0)
|
||||
{
|
||||
return Err(StructureExtraction("VM group name is invalid!").into());
|
||||
}
|
||||
|
||||
if self.memory < constants::MIN_VM_MEMORY || self.memory > constants::MAX_VM_MEMORY {
|
||||
|
Reference in New Issue
Block a user