From 50441e96eaf341384e999fdac8128401e9fcfbca Mon Sep 17 00:00:00 2001 From: Bart De Schuymer Date: Tue, 30 Aug 2005 21:20:55 +0000 Subject: update initialisation scripts --- ebtables-save | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'ebtables-save') diff --git a/ebtables-save b/ebtables-save index df30790..90f62ef 100644 --- a/ebtables-save +++ b/ebtables-save @@ -8,6 +8,10 @@ use strict; my $table; +my $ebtables = "__EXEC_PATH__/ebtables"; +my $cnt = ""; +my $version = "1.0"; +my $table_name; # ======================================================== # Process filter table @@ -31,6 +35,9 @@ sub process_table { if ($line =~ m/^$/) { next; } + if ($cnt eq "--Lc") { + $line =~ s/, pcnt = (.*) -- bcnt = (.*)/-c $1 $2/; + } $rules = $rules . "-A $chain $line\n"; } @@ -40,14 +47,13 @@ sub process_table { } # ======================================================== -unless (-x "/sbin/ebtables") { exit -1 }; -$table =`/sbin/ebtables -t filter -L`; -unless ($? == 0) { print $table; exit -1 }; -&process_table($table); -$table =`/sbin/ebtables -t nat -L`; -unless ($? == 0) { print $table; exit -1 }; -&process_table($table); -$table =`/sbin/ebtables -t broute -L`; -unless ($? == 0) { print $table; exit -1 }; -&process_table($table); - +unless (-x $ebtables) { exit -1 }; +print "# Generated by ebtables-save v$version on " . `date`; +if (defined($ENV{'EBTABLES_SAVE_COUNTER'}) && $ENV{'EBTABLES_SAVE_COUNTER'} eq "yes") { + $cnt = "--Lc"; +} +foreach $table_name (split("\n", `grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//`)) { + $table =`$ebtables -t $table_name -L $cnt`; + unless ($? == 0) { print $table; exit -1 }; + &process_table($table); +} -- cgit v1.2.3