mirror of
https://git.proxmox.com/git/proxmox-ve-rs
synced 2025-10-04 14:24:29 +00:00
ipset: add range variant to addresses
A range can be used to store multiple IP addresses in an ipset that do not neatly fit into a single CIDR. Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
This commit is contained in:
parent
5f912fe12c
commit
f216176d72
@ -6,7 +6,7 @@ use anyhow::{bail, format_err, Error};
|
|||||||
use serde_with::DeserializeFromStr;
|
use serde_with::DeserializeFromStr;
|
||||||
|
|
||||||
use crate::firewall::parse::match_non_whitespace;
|
use crate::firewall::parse::match_non_whitespace;
|
||||||
use crate::firewall::types::address::Cidr;
|
use crate::firewall::types::address::{Cidr, IpRange};
|
||||||
use crate::firewall::types::alias::AliasName;
|
use crate::firewall::types::alias::AliasName;
|
||||||
use crate::guest::vm::NetworkConfig;
|
use crate::guest::vm::NetworkConfig;
|
||||||
|
|
||||||
@ -93,6 +93,7 @@ impl Display for IpsetName {
|
|||||||
pub enum IpsetAddress {
|
pub enum IpsetAddress {
|
||||||
Alias(AliasName),
|
Alias(AliasName),
|
||||||
Cidr(Cidr),
|
Cidr(Cidr),
|
||||||
|
Range(IpRange),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FromStr for IpsetAddress {
|
impl FromStr for IpsetAddress {
|
||||||
@ -117,6 +118,12 @@ impl<T: Into<Cidr>> From<T> for IpsetAddress {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl From<IpRange> for IpsetAddress {
|
||||||
|
fn from(range: IpRange) -> Self {
|
||||||
|
IpsetAddress::Range(range)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
#[cfg_attr(test, derive(Eq, PartialEq))]
|
#[cfg_attr(test, derive(Eq, PartialEq))]
|
||||||
pub struct IpsetEntry {
|
pub struct IpsetEntry {
|
||||||
|
Loading…
Reference in New Issue
Block a user