From: Dietmar Maurer Date: Mon, 6 Aug 2012 08:29:33 +0000 (+0200) Subject: code cleanup X-Git-Url: https://git.proxmox.com/?p=pve-firewall.git;a=commitdiff_plain;h=35081236f38e2368e898bce151aa0741cb13cda9 code cleanup --- diff --git a/PVE/Firewall.pm b/PVE/Firewall.pm index cf53afc..c10aab3 100644 --- a/PVE/Firewall.pm +++ b/PVE/Firewall.pm @@ -18,8 +18,10 @@ sub compile { fw => { type => 'firewall' }, }; - my $register_bridge = sub { - my ($bridge) = @_; + my $register_bridge; + + $register_bridge = sub { + my ($bridge, $vlan) = @_; my $zone = 'z' . $bridge; @@ -29,6 +31,27 @@ sub compile { type => 'bridge', bridge => $bridge, }; + + return &$register_bridge("${bridge}v${vlan}") if defined($vlan); + + return $zone; + }; + + my $register_bridge_port = sub { + my ($bridge, $vlan, $vmzone, $tap) = @_; + + my $bridge_zone = &$register_bridge($bridge, $vlan); + my $zone = $bridge_zone . $vmzone; + + if (!$zoneinfo->{$zone}) { + $zoneinfo->{$zone} = { + type => 'bport', + bridge_zone => $bridge_zone, + ifaces => {}, + }; + } + + $zoneinfo->{$zone}->{ifaces}->{$tap} = 1; return $zone; }; @@ -42,19 +65,9 @@ sub compile { my $net = PVE::QemuServer::parse_net($conf->{$opt}); next if !$net; die "implement me" if !$net->{bridge}; - my $bridge = $net->{bridge}; - my $bridge_zone = &$register_bridge($bridge); - if (defined($net->{tag})) { - $bridge = $bridge .= "v$net->{tag}"; - $bridge_zone = &$register_bridge($bridge); - } my $vmzone = $conf->{zone} || "vm$vmid"; - my $zone = "$bridge_zone$vmzone"; - $net->{zone} = $zone; - $zoneinfo->{$zone}->{type} = 'bport'; - $zoneinfo->{$zone}->{bridge_zone} = $bridge_zone; - $zoneinfo->{$zone}->{ifaces}->{"tap${vmid}i${netid}"} = 1; + $net->{zone} = &$register_bridge_port($net->{bridge}, $net->{tag}, $vmzone, "tap${vmid}i${netid}"); $netinfo->{$vmid}->{$netid} = $net; } }