From 69792446ecffd56c41d2884e3eff93fdc8f7acd8 Mon Sep 17 00:00:00 2001 From: tokul Date: Mon, 1 May 2006 16:22:56 +0000 Subject: [PATCH] moved get_location() before html output added configtest hook and plugin setup.php output checks. git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@11102 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- src/configtest.php | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/src/configtest.php b/src/configtest.php index 5b6436b2..6756a961 100644 --- a/src/configtest.php +++ b/src/configtest.php @@ -52,6 +52,11 @@ if (file_exists(SM_PATH . 'config/config.php')) { require(SM_PATH . 'functions/global.php'); require(SM_PATH . 'functions/strings.php'); +/** + * get_location starts session and must be run before output is started. + */ +$test_location = get_location(); + ?> @@ -239,7 +244,32 @@ if (isset($plugins[0])) { do_err('You have enabled the '.$plugin.' plugin, which causes problems with this version of SquirrelMail. Please check the ReleaseNotes or other documentation for more information.', false); } } - echo $IND . "Plugins OK.
\n"; + // load plugin functions + include_once(SM_PATH . 'functions/plugin.php'); + // turn on output buffering in order to prevent output of new lines + ob_start(); + foreach ($plugins as $name) { + use_plugin($name); + } + // get output and remove whitespace + $output = trim(ob_get_contents()); + ob_end_clean(); + // if plugins output more than newlines and spacing, stop script execution. + if (!empty($output)) { + $plugin_load_error = 'Some output is produced when plugins are loaded.' + .' Usually it means error. Output said: '.htmlspecialchars($output); + do_err($plugin_load_error); + } + /** + * Hook is added in 1.5.2. Plugins should print error message and return true + * if there is an error in plugin. + */ + $plugin_err = boolean_hook_function('configtest'); + if($plugin_err) { + do_err('Some plugin tests failed.'); + } else { + echo $IND . "Plugins OK.
\n"; + } } else { echo $IND . "Plugins are not enabled in config.
\n"; } @@ -271,7 +301,7 @@ if ( $squirrelmail_default_language != 'en_US' ) { echo $IND . "Default language OK.
\n"; } -echo $IND . "Base URL detected as: " . htmlspecialchars(get_location()) . "
\n"; +echo $IND . "Base URL detected as: " . htmlspecialchars($test_location) . "
\n"; /* check minimal requirements for other security options */ -- 2.25.1