mirror of
https://gitlab.com/shorewall/code.git
synced 2024-12-24 15:18:53 +01:00
Correctly handle the product name in export shorewallrc.
- Also re-arranged the processing of the shorewallrc file to eliminate the kludgy shuffling of hashes. Signed-off-by: Tom Eastep <teastep@shorewall.net>
This commit is contained in:
parent
7235d4da11
commit
4260e5f6ba
@ -203,20 +203,7 @@ sub generate_script_2() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
emit ( '[ -f ${g_confdir}/vardir ] && . ${g_confdir}/vardir' );
|
emit ( '[ -f ${g_confdir}/vardir ] && . ${g_confdir}/vardir' );
|
||||||
|
emit ( qq([ -n "\${VARDIR:=$shorewallrc1{VARDIR}}" ]) );
|
||||||
if ( $family == F_IPV4 ) {
|
|
||||||
if ( $export ) {
|
|
||||||
emit ( '[ -n "${VARDIR:=' . $shorewallrc1{VARDIR} . '/shorewall-lite}" ]' );
|
|
||||||
} else {
|
|
||||||
emit ( '[ -n "${VARDIR:=' . $shorewallrc1{VARDIR} . '/shorewall}" ]' );
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ( $export ) {
|
|
||||||
emit ( '[ -n "${VARDIR:=' . $shorewallrc1{VARDIR} . '/shorewall6-lite}" ]' );
|
|
||||||
} else {
|
|
||||||
emit ( '[ -n "${VARDIR:=' . $shorewallrc1{VARDIR} . '/shorewall6}" ]' );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
emit 'TEMPFILE=';
|
emit 'TEMPFILE=';
|
||||||
|
|
||||||
|
@ -557,7 +557,7 @@ use constant { PLAIN_READ => 0, # No read_a_line options
|
|||||||
NORMAL_READ => -1 # All options
|
NORMAL_READ => -1 # All options
|
||||||
};
|
};
|
||||||
|
|
||||||
sub process_shorewallrc($);
|
sub process_shorewallrc($$);
|
||||||
#
|
#
|
||||||
# Rather than initializing globals in an INIT block or during declaration,
|
# Rather than initializing globals in an INIT block or during declaration,
|
||||||
# we initialize them in a function. This is done for two reasons:
|
# we initialize them in a function. This is done for two reasons:
|
||||||
@ -897,16 +897,6 @@ sub initialize( $;$$) {
|
|||||||
|
|
||||||
@actparms = ();
|
@actparms = ();
|
||||||
|
|
||||||
%shorewallrc = (
|
|
||||||
SHAREDIR => '/usr/share/',
|
|
||||||
CONFDIR => '/etc/',
|
|
||||||
);
|
|
||||||
|
|
||||||
%shorewallrc1 = (
|
|
||||||
SHAREDIR => '/usr/share/',
|
|
||||||
CONFDIR => '/etc/',
|
|
||||||
);
|
|
||||||
|
|
||||||
%helpers_enabled = (
|
%helpers_enabled = (
|
||||||
amanda => 1,
|
amanda => 1,
|
||||||
ftp => 1,
|
ftp => 1,
|
||||||
@ -950,12 +940,34 @@ sub initialize( $;$$) {
|
|||||||
snmp => 'snmp',
|
snmp => 'snmp',
|
||||||
tftp => 'tftp',
|
tftp => 'tftp',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
%shorewallrc = (
|
||||||
|
SHAREDIR => '/usr/share/',
|
||||||
|
CONFDIR => '/etc/',
|
||||||
|
);
|
||||||
|
#
|
||||||
|
# If we are compiling for export, process the shorewallrc from the remote system
|
||||||
|
#
|
||||||
|
if ( $shorewallrc1 ) {
|
||||||
|
process_shorewallrc( $shorewallrc1,
|
||||||
|
$family == F_IPV4 ? 'shorewall-lite' : 'shorewall6-lite'
|
||||||
|
);
|
||||||
|
|
||||||
|
%shorewallrc1 = %shorewallrc;
|
||||||
|
|
||||||
|
%shorewallrc = (
|
||||||
|
SHAREDIR => '/usr/share/',
|
||||||
|
CONFDIR => '/etc/',
|
||||||
|
);
|
||||||
|
}
|
||||||
#
|
#
|
||||||
# Process the global shorewallrc file
|
# Process the global shorewallrc file
|
||||||
#
|
#
|
||||||
# Note: The build file executes this function passing only the protocol family
|
# Note: The build file executes this function passing only the protocol family
|
||||||
#
|
#
|
||||||
process_shorewallrc( $shorewallrc ) if defined $shorewallrc;
|
process_shorewallrc( $shorewallrc,
|
||||||
|
$family == F_IPV4 ? 'shorewall' : 'shorewall6'
|
||||||
|
) if defined $shorewallrc;
|
||||||
|
|
||||||
$globals{SHAREDIRPL} = "$shorewallrc{SHAREDIR}/shorewall/";
|
$globals{SHAREDIRPL} = "$shorewallrc{SHAREDIR}/shorewall/";
|
||||||
|
|
||||||
@ -971,18 +983,8 @@ sub initialize( $;$$) {
|
|||||||
$globals{PRODUCT} = 'shorewall6';
|
$globals{PRODUCT} = 'shorewall6';
|
||||||
$config{IP6TABLES} = undef;
|
$config{IP6TABLES} = undef;
|
||||||
}
|
}
|
||||||
#
|
|
||||||
# If we are compiling for export, process the shorewallrc from the remote system
|
%shorewallrc1 = %shorewallrc unless $shorewallrc1;
|
||||||
#
|
|
||||||
if ( $shorewallrc1 ) {
|
|
||||||
my %rc = %shorewallrc;
|
|
||||||
%shorewallrc = ( );
|
|
||||||
process_shorewallrc( $shorewallrc1 );
|
|
||||||
%shorewallrc1 = %shorewallrc;
|
|
||||||
%shorewallrc = %rc;
|
|
||||||
} else {
|
|
||||||
%shorewallrc1 = %shorewallrc;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
my @abbr = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
|
my @abbr = qw( Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec );
|
||||||
@ -2624,10 +2626,10 @@ sub read_a_line($) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub process_shorewallrc( $ ) {
|
sub process_shorewallrc( $$ ) {
|
||||||
my $shorewallrc = shift;
|
my ( $shorewallrc , $product ) = @_;
|
||||||
|
|
||||||
$shorewallrc{PRODUCT} = $family == F_IPV4 ? 'shorewall' : 'shorewall6';
|
$shorewallrc{PRODUCT} = $product;
|
||||||
|
|
||||||
if ( open_file $shorewallrc ) {
|
if ( open_file $shorewallrc ) {
|
||||||
while ( read_a_line( STRIP_COMMENTS | SUPPRESS_WHITESPACE | CHECK_GUNK ) ) {
|
while ( read_a_line( STRIP_COMMENTS | SUPPRESS_WHITESPACE | CHECK_GUNK ) ) {
|
||||||
|
Loading…
Reference in New Issue
Block a user