From 74833e6d9bfea0c5a2cca90df9643ab232e52a8b Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Sun, 1 Mar 2009 19:30:42 +0000 Subject: [PATCH] Move all initialization code into init_config --- web-lib-funcs.pl | 36 ++++++++++++++++++++++++++++++++++++ web-lib.pl | 36 ------------------------------------ 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/web-lib-funcs.pl b/web-lib-funcs.pl index 8e742113e..96eb2eb98 100755 --- a/web-lib-funcs.pl +++ b/web-lib-funcs.pl @@ -3342,6 +3342,10 @@ and housekeeping tasks, such as working out the module name, checking that the current user has access to the module, and populating global variables. Some of the variables set include : +=item $config_directory - Base Webmin config directory, typically /etc/webmin + +=item $var_directory - Base logs directory, typically /var/webmin + =item %config - Per-module configuration. =item %gconfig - Global configuration. @@ -3371,6 +3375,38 @@ of the variables set include : =cut sub init_config { +# Configuration and spool directories +if (!defined($ENV{'WEBMIN_CONFIG'})) { + die "WEBMIN_CONFIG not set"; + } +$config_directory = $ENV{'WEBMIN_CONFIG'}; +if (!defined($ENV{'WEBMIN_VAR'})) { + open(VARPATH, "$config_directory/var-path"); + chop($var_directory = ); + close(VARPATH); + } +else { + $var_directory = $ENV{'WEBMIN_VAR'}; + } + +if ($ENV{'SESSION_ID'}) { + # Hide this variable from called programs, but keep it for internal use + $main::session_id = $ENV{'SESSION_ID'}; + delete($ENV{'SESSION_ID'}); + } +if ($ENV{'REMOTE_PASS'}) { + # Hide the password too + $main::remote_pass = $ENV{'REMOTE_PASS'}; + delete($ENV{'REMOTE_PASS'}); + } + +if ($> == 0 && $< != 0 && !$ENV{'FOREIGN_MODULE_NAME'}) { + # Looks like we are running setuid, but the real UID hasn't been set. + # Do so now, so that executed programs don't get confused + $( = $); + $< = $>; + } + # Read the webmin global config file. This contains the OS type and version, # OS specific configuration and global options such as proxy servers $config_file = "$config_directory/config"; diff --git a/web-lib.pl b/web-lib.pl index e866199a3..95a6e6de7 100755 --- a/web-lib.pl +++ b/web-lib.pl @@ -13,42 +13,6 @@ the Webmin API functions are defined. =cut -# Configuration and spool directories -if (!defined($ENV{'WEBMIN_CONFIG'})) { - die "WEBMIN_CONFIG not set"; - } -$config_directory = $ENV{'WEBMIN_CONFIG'}; -if (!defined($ENV{'WEBMIN_VAR'})) { - open(VARPATH, "$config_directory/var-path"); - chop($var_directory = ); - close(VARPATH); - } -else { - $var_directory = $ENV{'WEBMIN_VAR'}; - } - -if ($ENV{'SESSION_ID'}) { - # Hide this variable from called programs, but keep it for internal use - $main::session_id = $ENV{'SESSION_ID'}; - delete($ENV{'SESSION_ID'}); - } -if ($ENV{'REMOTE_PASS'}) { - # Hide the password too - $main::remote_pass = $ENV{'REMOTE_PASS'}; - delete($ENV{'REMOTE_PASS'}); - } - -if ($> == 0 && $< != 0 && !$ENV{'FOREIGN_MODULE_NAME'}) { - # Looks like we are running setuid, but the real UID hasn't been set. - # Do so now, so that executed programs don't get confused - $( = $); - $< = $>; - } - -# On Windows, always do IO in binary mode -#binmode(STDIN); -#binmode(STDOUT); - $remote_error_handler = "error"; @INC = &unique(@INC, "."); %month_to_number_map = ( 'jan' => 0, 'feb' => 1, 'mar' => 2, 'apr' => 3,