diff --git a/Shorewall/Perl/Shorewall/Config.pm b/Shorewall/Perl/Shorewall/Config.pm index 2021b000d..7c3c9b920 100644 --- a/Shorewall/Perl/Shorewall/Config.pm +++ b/Shorewall/Perl/Shorewall/Config.pm @@ -2889,7 +2889,9 @@ sub get_params() { progress_message2 "Processing $fn ..."; - my @params = `$globals{SHAREDIRPL}/getparams $fn`; + my $command = "$globals{SHAREDIRPL}/getparams $fn " . join( ':', @config_path ); + + my @params = `$command`; fatal_error "Processing of $fn failed" if $?; diff --git a/Shorewall/Perl/getparams b/Shorewall/Perl/getparams index 36d237082..7d064a7b4 100755 --- a/Shorewall/Perl/getparams +++ b/Shorewall/Perl/getparams @@ -21,18 +21,19 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -exported=$(env | sed 's/=.*//'); +. /usr/share/shorewall/lib.base +. /usr/share/shorewall/lib.cli -# -# Sigh -- POSIX shells don't support 'typeset +x' or 'declare +x' -# +exported=$(env | sed 's/=.*//'); for v in $exported; do eval t=\"\$$v\" - eval $v= + eval unset $v eval $v=\"$t\" done +CONFIG_PATH="$2" + set -a . $1