summaryrefslogtreecommitdiff
path: root/lib/Vyatta/Conntrack
diff options
context:
space:
mode:
authorGaurav <gaurav.sinha@vyatta.com>2012-04-09 18:06:33 -0700
committerGaurav <gaurav.sinha@vyatta.com>2012-04-09 18:06:33 -0700
commit187fff2adcf5b0e54ac7d5fec9289f4a3a025a5e (patch)
tree17701beee088483aa50f19f2a5260615aa8f8aca /lib/Vyatta/Conntrack
parentab7c9cc58a8b6d2e31c54956293e72998dd1ff10 (diff)
downloadvyatta-conntrack-187fff2adcf5b0e54ac7d5fec9289f4a3a025a5e.tar.gz
vyatta-conntrack-187fff2adcf5b0e54ac7d5fec9289f4a3a025a5e.zip
fixing bug 7861, resolve protocol name from /etc/protocols.
Diffstat (limited to 'lib/Vyatta/Conntrack')
-rw-r--r--lib/Vyatta/Conntrack/ConntrackUtil.pm18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/Vyatta/Conntrack/ConntrackUtil.pm b/lib/Vyatta/Conntrack/ConntrackUtil.pm
index 8f529c2..104f237 100644
--- a/lib/Vyatta/Conntrack/ConntrackUtil.pm
+++ b/lib/Vyatta/Conntrack/ConntrackUtil.pm
@@ -25,7 +25,23 @@
package Vyatta::Conntrack::ConntrackUtil;
use base qw(Exporter);
-our @EXPORT = qw(check_for_conntrack_hooks);
+our @EXPORT = qw(check_for_conntrack_hooks,
+ process_protocols);
+
+sub process_protocols {
+ my $proto = undef;
+ my %proto_hash = ();
+ my $PROTO_FILE = '/etc/protocols';
+ # do nothing if can't open
+ return if (!open($proto, $PROTO_FILE));
+ while (<$proto>) {
+ next if (/^\s*#/);
+ next if (!/^\S+\s+(\d+)\s+(\S+)\s/);
+ $proto_hash{$1} = $2;
+ }
+ close $proto;
+ return \%proto_hash;
+}
#function to find if connection tracking is enabled.
#looks in the iptables to see if any of the features introduced