forked from extern/shorewall_code
More error reporting improvements
git-svn-id: https://shorewall.svn.sourceforge.net/svnroot/shorewall/trunk@5752 fbd18981-670d-0410-9b5c-8dc0c1a9a2bb
This commit is contained in:
parent
f124283dc3
commit
ab3d55514e
@ -32,7 +32,6 @@ use strict;
|
|||||||
our @ISA = qw(Exporter);
|
our @ISA = qw(Exporter);
|
||||||
our @EXPORT = qw(ALLIPv4
|
our @EXPORT = qw(ALLIPv4
|
||||||
|
|
||||||
split_line
|
|
||||||
create_temp_object
|
create_temp_object
|
||||||
finalize_object
|
finalize_object
|
||||||
emit
|
emit
|
||||||
@ -90,39 +89,6 @@ sub fatal_error
|
|||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
|
||||||
# When splitting a line, don't pad out the columns with '-' if the first column contains one of these
|
|
||||||
#
|
|
||||||
|
|
||||||
my %no_pad = ( COMMENT => 1,
|
|
||||||
SECTION => 1 );
|
|
||||||
|
|
||||||
#
|
|
||||||
# Pre-process a line from a configuration file.
|
|
||||||
#
|
|
||||||
# chomp it.
|
|
||||||
# compress out redundent white space.
|
|
||||||
# ensure that it has an appropriate number of columns.
|
|
||||||
# supply '-' in omitted trailing columns.
|
|
||||||
#
|
|
||||||
sub split_line( $$ ) {
|
|
||||||
my ( $columns, $description ) = @_;
|
|
||||||
|
|
||||||
chomp $line;
|
|
||||||
|
|
||||||
$line =~ s/\s+/ /g;
|
|
||||||
|
|
||||||
my @line = split /\s+/, $line;
|
|
||||||
|
|
||||||
return @line if $no_pad{$line[0]};
|
|
||||||
|
|
||||||
fatal_error "Invalid $description entry: $line" if @line > $columns;
|
|
||||||
|
|
||||||
push @line, '-' while @line < $columns;
|
|
||||||
|
|
||||||
@line;
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Write the argument to the object file (if any) with the current indentation.
|
# Write the argument to the object file (if any) with the current indentation.
|
||||||
#
|
#
|
||||||
|
@ -32,6 +32,7 @@ our @EXPORT = qw(
|
|||||||
warning_message
|
warning_message
|
||||||
fatal_error
|
fatal_error
|
||||||
find_file
|
find_file
|
||||||
|
split_line
|
||||||
open_file
|
open_file
|
||||||
push_open
|
push_open
|
||||||
pop_open
|
pop_open
|
||||||
@ -228,19 +229,15 @@ my $currentlinenumber = 0;
|
|||||||
#
|
#
|
||||||
sub warning_message
|
sub warning_message
|
||||||
{
|
{
|
||||||
if ( $currentfile ) {
|
my $lineinfo = $currentfile ? " : $currentfilename ( line $currentlinenumber )" : '';
|
||||||
print STDERR " WARNING: @_ : $currentfilename#$currentlinenumber\n";
|
|
||||||
} else {
|
print STDERR " WARNING: @_$lineinfo\n";
|
||||||
print STDERR " WARNING: @_\n";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub fatal_error {
|
sub fatal_error {
|
||||||
if ( $currentfile ) {
|
my $lineinfo = $currentfile ? " : $currentfilename ( line $currentlinenumber )" : '';
|
||||||
print STDERR " ERROR: @_ : $currentfilename#$currentlinenumber\n";
|
|
||||||
} else {
|
print STDERR " ERROR: @_$lineinfo\n";
|
||||||
print STDERR " ERROR: @_\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
exit 1;
|
exit 1;
|
||||||
}
|
}
|
||||||
@ -259,16 +256,47 @@ sub find_file($)
|
|||||||
my $directory;
|
my $directory;
|
||||||
|
|
||||||
for $directory ( split ':', $ENV{CONFIG_PATH} ) {
|
for $directory ( split ':', $ENV{CONFIG_PATH} ) {
|
||||||
my $file = "$directory/$filename";
|
$directory = "$directory/" unless substr( $directory, -1, 1 ) eq '/';
|
||||||
if ( -f $file ) {
|
my $file = "$directory$filename";
|
||||||
$file =~ s|//|/|g;
|
return $file if -f $file;
|
||||||
return $file;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
"$env{CONFDIR}/$filename";
|
"$env{CONFDIR}/$filename";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# When splitting a line, don't pad out the columns with '-' if the first column contains one of these
|
||||||
|
#
|
||||||
|
|
||||||
|
my %no_pad = ( COMMENT => 1,
|
||||||
|
SECTION => 1 );
|
||||||
|
|
||||||
|
#
|
||||||
|
# Pre-process a line from a configuration file.
|
||||||
|
#
|
||||||
|
# chomp it.
|
||||||
|
# compress out redundent white space.
|
||||||
|
# ensure that it has an appropriate number of columns.
|
||||||
|
# supply '-' in omitted trailing columns.
|
||||||
|
#
|
||||||
|
sub split_line( $$ ) {
|
||||||
|
my ( $columns, $description ) = @_;
|
||||||
|
|
||||||
|
chomp $line;
|
||||||
|
|
||||||
|
$line =~ s/\s+/ /g;
|
||||||
|
|
||||||
|
my @line = split /\s+/, $line;
|
||||||
|
|
||||||
|
return @line if $no_pad{$line[0]};
|
||||||
|
|
||||||
|
fatal_error "Invalid $description entry (too many columns)" if @line > $columns;
|
||||||
|
|
||||||
|
push @line, '-' while @line < $columns;
|
||||||
|
|
||||||
|
@line;
|
||||||
|
}
|
||||||
|
|
||||||
sub default ( $$ ) {
|
sub default ( $$ ) {
|
||||||
my ( $var, $val ) = @_;
|
my ( $var, $val ) = @_;
|
||||||
|
|
||||||
@ -439,7 +467,7 @@ sub get_configuration() {
|
|||||||
|
|
||||||
if ( -f $file ) {
|
if ( -f $file ) {
|
||||||
if ( -r _ ) {
|
if ( -r _ ) {
|
||||||
open $currentfile , $file or fatal_error "Unable to open $file: $!";
|
open_file $file;
|
||||||
|
|
||||||
while ( read_a_line ) {
|
while ( read_a_line ) {
|
||||||
if ( $line =~ /^([a-zA-Z]\w*)\s*=\s*(.*)$/ ) {
|
if ( $line =~ /^([a-zA-Z]\w*)\s*=\s*(.*)$/ ) {
|
||||||
@ -494,14 +522,6 @@ sub get_configuration() {
|
|||||||
fatal_error "$file does not exist!";
|
fatal_error "$file does not exist!";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $ENV{DEBUG} ) {
|
|
||||||
print "\n";
|
|
||||||
print "Capabilities:\n";
|
|
||||||
for my $var (sort keys %capabilities) {
|
|
||||||
print " $var=$capabilities{$var}\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$env{ORIGINAL_POLICY_MATCH} = $capabilities{POLICY_MATCH};
|
$env{ORIGINAL_POLICY_MATCH} = $capabilities{POLICY_MATCH};
|
||||||
|
|
||||||
default 'MODULE_PREFIX', 'o gz ko o.gz ko.gz';
|
default 'MODULE_PREFIX', 'o gz ko o.gz ko.gz';
|
||||||
@ -660,26 +680,6 @@ sub get_configuration() {
|
|||||||
$env{MAXZONENAMELENGTH} = 5;
|
$env{MAXZONENAMELENGTH} = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $ENV{DEBUG} ) {
|
|
||||||
print "\n";
|
|
||||||
print "Configuration:\n";
|
|
||||||
|
|
||||||
for my $var (sort keys %config) {
|
|
||||||
if ( defined $config{$var} ) {
|
|
||||||
print " $var=$config{$var}\n";
|
|
||||||
} else {
|
|
||||||
print " $var=\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print "\n";
|
|
||||||
print "Environment:\n";
|
|
||||||
|
|
||||||
for my $var (sort keys %env) {
|
|
||||||
print " $var=$env{$var}\n" if $env{$var};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub propagateconfig() {
|
sub propagateconfig() {
|
||||||
|
Loading…
Reference in New Issue
Block a user