summaryrefslogtreecommitdiff
path: root/lib/Vyatta/Conntrack/ConntrackUtil.pm
diff options
context:
space:
mode:
authorGaurav Sinha <gaurav.sinha@vyatta.com>2012-06-07 23:19:36 -0700
committerGaurav Sinha <gaurav.sinha@vyatta.com>2012-06-07 23:19:36 -0700
commit2d083c4aba26b08c68f812119d49e70328d9ef8b (patch)
treed79bd4962972bc1f41f85e294858e2e2ec434274 /lib/Vyatta/Conntrack/ConntrackUtil.pm
parentca94628e7c1f78486a8f3ea89cba3b2c2f1f1320 (diff)
downloadvyatta-conntrack-2d083c4aba26b08c68f812119d49e70328d9ef8b.tar.gz
vyatta-conntrack-2d083c4aba26b08c68f812119d49e70328d9ef8b.zip
re-factored deletion code, disabling module scripts fixed
Diffstat (limited to 'lib/Vyatta/Conntrack/ConntrackUtil.pm')
-rw-r--r--lib/Vyatta/Conntrack/ConntrackUtil.pm34
1 files changed, 33 insertions, 1 deletions
diff --git a/lib/Vyatta/Conntrack/ConntrackUtil.pm b/lib/Vyatta/Conntrack/ConntrackUtil.pm
index bdc4961..0ded3ef 100644
--- a/lib/Vyatta/Conntrack/ConntrackUtil.pm
+++ b/lib/Vyatta/Conntrack/ConntrackUtil.pm
@@ -41,7 +41,7 @@ sub process_protocols {
close $proto;
return \%proto_hash;
}
-our @EXPORT = qw(check_for_conntrack_hooks, process_protocols, check_and_add_helpers);
+our @EXPORT = qw(check_for_conntrack_hooks, process_protocols, check_and_add_helpers, run_cmd);
#function to find if connection tracking is enabled.
#looks in the iptables to see if any of the features introduced
@@ -83,4 +83,36 @@ sub check_and_add_helpers {
check_ct_helper_rules();
}
}
+
+sub log_msg {
+ my $message = shift;
+
+ print "DEBUG: $message\n" if $debug_flag;
+ syslog(LOG_DEBUG, "%s", $message) if $syslog_flag;
+}
+# Run command and capture output
+# run_cmd("$iptables_cmd -t $table -F $name", 1);
+# if command fails, then send output to syslog
+sub run_cmd {
+ my ($cmd_to_run, $redirect) = @_;
+
+ log_msg("Running: $cmd_to_run");
+
+ if ($redirect) {
+ open (my $out, '-|', $cmd_to_run . ' 2>&1')
+ or die "Can't run command \"$cmd_to_run\": $!";
+ my @cmd_out = <$out>;
+
+ # if command suceeds to do nothing.
+ return if (close ($out));
+
+ foreach my $line (@cmd_out) {
+ chomp $line;
+ syslog(LOG_INFO, "%s", $line);
+ }
+ } else {
+ system($cmd_to_run);
+ }
+}
+
# end of file