--- ./ebtables-save.orig 2007-09-28 22:50:35.000000000 +0400 +++ ./ebtables-save 2007-09-28 22:51:22.000000000 +0400 @@ -12,6 +12,7 @@ my $cnt = ""; my $version = "1.0"; my $table_name; +my @table_names; # ======================================================== # Process filter table @@ -49,12 +50,19 @@ } # ======================================================== +if ($#ARGV + 1 == 0) { + @table_names =split("\n", `grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//`); +} +else { + @table_names = @ARGV; +} +# ======================================================== 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_//`)) { +foreach $table_name (@table_names) { $table =`$ebtables -t $table_name -L $cnt`; unless ($? == 0) { print $table; exit -1 }; &process_table($table);