summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2014-05-30 08:08:06 -0700
committerDaniil Baturin <daniil@baturin.org>2014-05-30 08:08:06 -0700
commita79ff6bfe4c9c2ce7eb9ee1368a9ea7b81fa6666 (patch)
tree53bb798be5384fd3e6c1911314daf00fc6bbdca1
parent61f03ea2975b88ad56ffb71b0472f1bdaba396e5 (diff)
parente1f9087305f3658faa04fc4653516a465041da37 (diff)
downloadvyatta-nat-hydrogen.tar.gz
vyatta-nat-hydrogen.zip
Merge pull request #2 from m-asama/hydrogen-srcdstfixhydrogen
Fix some required -j target rules delete bug when delete source/destinat...
-rwxr-xr-xscripts/vyatta-update-dst-nat.pl13
-rwxr-xr-xscripts/vyatta-update-src-nat.pl13
2 files changed, 24 insertions, 2 deletions
diff --git a/scripts/vyatta-update-dst-nat.pl b/scripts/vyatta-update-dst-nat.pl
index 4a2fb9a..5b8f329 100755
--- a/scripts/vyatta-update-dst-nat.pl
+++ b/scripts/vyatta-update-dst-nat.pl
@@ -40,7 +40,19 @@ sub raw_cleanup {
ipt_disable_conntrack('iptables', 'NAT_CONNTRACK');
}
+my $all_deleted = 1;
+
my $config = new Vyatta::Config;
+
+$config->setLevel("nat source rule");
+my %rules_src = $config->listNodeStatus();
+my $rule_src;
+for $rule_src (keys %rules_src) {
+ if ($rules_src{$rule_src} ne "deleted") {
+ $all_deleted = 0;
+ }
+}
+
$config->setLevel($CONFIG_LEVEL." rule");
my %rules = $config->listNodeStatus();
my $rule;
@@ -69,7 +81,6 @@ system("$IPTABLES -t nat -L -n >& /dev/null");
# we have some nat rule(s). make sure conntrack is enabled.
ipt_enable_conntrack('iptables', 'NAT_CONNTRACK');
-my $all_deleted = 1;
for $rule (@rule_keys) {
print OUT "$rule: $rules{$rule}\n";
my $tmp = `iptables -L -nv --line -t nat`;
diff --git a/scripts/vyatta-update-src-nat.pl b/scripts/vyatta-update-src-nat.pl
index af77e22..2c481e1 100755
--- a/scripts/vyatta-update-src-nat.pl
+++ b/scripts/vyatta-update-src-nat.pl
@@ -40,7 +40,19 @@ sub raw_cleanup {
ipt_disable_conntrack('iptables', 'NAT_CONNTRACK');
}
+my $all_deleted = 1;
+
my $config = new Vyatta::Config;
+
+$config->setLevel("nat destination rule");
+my %rules_dst = $config->listNodeStatus();
+my $rule_dst;
+for $rule_dst (keys %rules_dst) {
+ if ($rules_dst{$rule_dst} ne "deleted") {
+ $all_deleted = 0;
+ }
+}
+
$config->setLevel($CONFIG_LEVEL." rule");
my %rules = $config->listNodeStatus();
my $rule;
@@ -69,7 +81,6 @@ system("$IPTABLES -t nat -L -n >& /dev/null");
# we have some nat rule(s). make sure conntrack is enabled.
ipt_enable_conntrack('iptables', 'NAT_CONNTRACK');
-my $all_deleted = 1;
for $rule (@rule_keys) {
print OUT "$rule: $rules{$rule}\n";
my $tmp = `iptables -L -nv --line -t nat`;