diff options
author | Bart De Schuymer <bdschuym@pandora.be> | 2005-08-30 21:20:55 +0000 |
---|---|---|
committer | Bart De Schuymer <bdschuym@pandora.be> | 2005-08-30 21:20:55 +0000 |
commit | 50441e96eaf341384e999fdac8128401e9fcfbca (patch) | |
tree | 2f0950a79267ddc397d75f4cb6f02921566e4193 /ebtables-save | |
parent | e94eaf74a01f9f4b346b80fb40f4e23e2b58e796 (diff) |
update initialisation scripts
Diffstat (limited to 'ebtables-save')
-rw-r--r-- | ebtables-save | 28 |
1 files changed, 17 insertions, 11 deletions
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); +} |