From 68bb6bc9f583fb4174e755f968d2e928020df066 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Wed, 11 Sep 2019 22:48:54 -0700 Subject: [PATCH] Refactor arg parsing for func to get rules --- firewall/firewall-lib.pl | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/firewall/firewall-lib.pl b/firewall/firewall-lib.pl index 1d6cd2853..ce17018cc 100755 --- a/firewall/firewall-lib.pl +++ b/firewall/firewall-lib.pl @@ -43,7 +43,7 @@ return 4; } -# get_iptables_save([file]) +# get_iptables_save([file|"direct"]) # Parse the iptables save file into a list of tables # format seems to be: # *table @@ -53,11 +53,20 @@ return 4; # COMMIT sub get_iptables_save { +local ($file) = @_; local (@rv, $table, %got); local $lnum = 0; -open(FILE, $_[0] || ($config{"direct${ipvx}"} ? "ip${ipvx}tables-save 2>/dev/null |" - : $ipvx_save)); +local $direct = "ip${ipvx}tables-save 2>/dev/null |"; +if (!$file) { + # Use default file + $file = $config{"direct${ipvx}"} ? $direct : $ipvx_save; + } +elsif ($file eq "direct") { + # Read active rules + $file = $direct; + } +open(FILE, $file); local $cmt; LINE: while() {