[pve-devel] [PATCH RFC firewall 2/2] firewall: adjust to new qemu-server module structure

Fabian Grünbichler f.gruenbichler at proxmox.com
Thu Jul 3 09:37:51 CEST 2025


> Christoph Heiss <c.heiss at proxmox.com> hat am 02.07.2025 15:09 CEST geschrieben:
> 
>  
> PVE::QemuServer::parse_net() was moved to PVE::QemuServer::Network in
> qemu-server eac162a86 ("introduce Network module"), so adjust all
> references here accordingly.
> 
> Signed-off-by: Christoph Heiss <c.heiss at proxmox.com>
> ---
> This would require a corresponding `Depends` entry update in d/control.
> But currently, this dependency is not recorded to due being cyclic - at
> least according to the comment at the top of the file.
> 
> I've thus marked this patch as RFC & left that change out for now - but
> somehow this API break must be versioned properly. Maybe someone with
> more insight can chime in here?

we can either add a wrapper back to QemuServer.pm and carry that for the
duration of PVE 9 or we can bump pve-firewall with this patch here included
and do a versioned breaks..

in any case, thanks for noticing!

> 
>  src/PVE/Firewall.pm          | 6 +++---
>  src/PVE/FirewallSimulator.pm | 2 +-
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/src/PVE/Firewall.pm b/src/PVE/Firewall.pm
> index 13112be..41b740a 100644
> --- a/src/PVE/Firewall.pm
> +++ b/src/PVE/Firewall.pm
> @@ -4363,7 +4363,7 @@ sub compile_iptables_filter {
>  
>              foreach my $netid (sort keys %$conf) {
>                  next if $netid !~ m/^net(\d+)$/;
> -                my $net = PVE::QemuServer::parse_net($conf->{$netid});
> +                my $net = PVE::QemuServer::Network::parse_net($conf->{$netid});
>                  next if !$net->{firewall};
>  
>                  my $iface = "tap${vmid}i$1";
> @@ -4503,7 +4503,7 @@ sub compile_ipsets {
>              my $device_ips = {};
>              foreach my $netid (keys %$conf) {
>                  next if $netid !~ m/^net(\d+)$/;
> -                my $net = PVE::QemuServer::parse_net($conf->{$netid});
> +                my $net = PVE::QemuServer::Network::parse_net($conf->{$netid});
>                  next if !$net->{firewall};
>  
>                  if ($vmfw_conf->{options}->{ipfilter} && !$ipsets->{"ipfilter-$netid"}) {
> @@ -4623,7 +4623,7 @@ sub compile_ebtables_filter {
>  
>              foreach my $netid (sort keys %$conf) {
>                  next if $netid !~ m/^net(\d+)$/;
> -                my $net = PVE::QemuServer::parse_net($conf->{$netid});
> +                my $net = PVE::QemuServer::Network::parse_net($conf->{$netid});
>                  next if !$net->{firewall};
>                  my $iface = "tap${vmid}i$1";
>                  my $macaddr = $net->{macaddr};
> diff --git a/src/PVE/FirewallSimulator.pm b/src/PVE/FirewallSimulator.pm
> index 877e646..0a3100b 100644
> --- a/src/PVE/FirewallSimulator.pm
> +++ b/src/PVE/FirewallSimulator.pm
> @@ -491,7 +491,7 @@ sub extract_vm_info {
>      my $info = { type => 'vm', vmid => $vmid };
>  
>      my $conf = $vmdata->{qemu}->{$vmid} || die "no such VM '$vmid'";
> -    my $net = PVE::QemuServer::parse_net($conf->{"net$netnum"});
> +    my $net = PVE::QemuServer::Network::parse_net($conf->{"net$netnum"});
>      $info->{macaddr} = $net->{macaddr} || die "unable to get mac address";
>      $info->{bridge} = $net->{bridge} || die "unable to get bridge";
>      $info->{fwbr} = "fwbr${vmid}i$netnum";
> -- 
> 2.49.0
> 
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel




More information about the pve-devel mailing list