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.hanre...@proxmox.com> --- proxmox-ve-config/src/firewall/types/ipset.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/proxmox-ve-config/src/firewall/types/ipset.rs b/proxmox-ve-config/src/firewall/types/ipset.rs index c1af642..4ddf6d1 100644 --- a/proxmox-ve-config/src/firewall/types/ipset.rs +++ b/proxmox-ve-config/src/firewall/types/ipset.rs @@ -6,7 +6,7 @@ use anyhow::{bail, format_err, Error}; use serde_with::DeserializeFromStr; 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::guest::vm::NetworkConfig; @@ -90,6 +90,7 @@ impl Display for IpsetName { pub enum IpsetAddress { Alias(AliasName), Cidr(Cidr), + Range(IpRange), } impl FromStr for IpsetAddress { @@ -114,6 +115,12 @@ impl<T: Into<Cidr>> From<T> for IpsetAddress { } } +impl From<IpRange> for IpsetAddress { + fn from(range: IpRange) -> Self { + IpsetAddress::Range(range) + } +} + #[derive(Debug)] #[cfg_attr(test, derive(Eq, PartialEq))] pub struct IpsetEntry { -- 2.39.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel