From db81ff520543dc6584336c736cdb4d3f8b62996f Mon Sep 17 00:00:00 2001 From: Dries Buytaert <dries@buytaert.net> Date: Sat, 19 Sep 2009 10:38:47 +0000 Subject: [PATCH] - Patch #581286 by David Strauss | moshe weitzman: fixed detection of CLI environments properly. --- includes/bootstrap.inc | 13 ++++++++++--- scripts/drupal.sh | 2 +- scripts/run-tests.sh | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc index 3dc80262b8a1..18a370923f09 100644 --- a/includes/bootstrap.inc +++ b/includes/bootstrap.inc @@ -431,7 +431,7 @@ function drupal_override_server_variables($variables = array()) { 'REMOTE_ADDR' => '127.0.0.1', 'REQUEST_METHOD' => 'GET', 'SERVER_NAME' => NULL, - 'SERVER_SOFTWARE' => 'PHP CLI', + 'SERVER_SOFTWARE' => NULL, 'HTTP_USER_AGENT' => NULL, ); // Replace elements of the $_SERVER array, as appropriate. @@ -787,7 +787,7 @@ function drupal_page_is_cacheable($allow_caching = NULL) { } return $allow_caching_static && ($_SERVER['REQUEST_METHOD'] == 'GET' || $_SERVER['REQUEST_METHOD'] == 'HEAD') - && $_SERVER['SERVER_SOFTWARE'] !== 'PHP CLI'; + && !drupal_is_cli(); } /** @@ -1546,7 +1546,7 @@ function _drupal_bootstrap($phase) { require_once DRUPAL_ROOT . '/' . variable_get('lock_inc', 'includes/lock.inc'); lock_initialize(); - if ($_SERVER['SERVER_SOFTWARE'] !== 'PHP CLI') { + if (!drupal_is_cli()) { ob_start(); drupal_page_header(); } @@ -1999,3 +1999,10 @@ function &drupal_static($name, $default_value = NULL, $reset = FALSE) { function drupal_static_reset($name = NULL) { drupal_static($name, NULL, TRUE); } + +/** + * Detect whether the current script is running in a command-line environment. + */ +function drupal_is_cli() { + return (!isset($_SERVER['SERVER_SOFTWARE']) && (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0))); +} diff --git a/scripts/drupal.sh b/scripts/drupal.sh index 477fc2c4b306..9e743cf32eb1 100755 --- a/scripts/drupal.sh +++ b/scripts/drupal.sh @@ -62,7 +62,7 @@ $_SERVER['HTTP_HOST'] = 'default'; $_SERVER['PHP_SELF'] = '/index.php'; $_SERVER['REMOTE_ADDR'] = '127.0.0.1'; -$_SERVER['SERVER_SOFTWARE'] = 'PHP CLI'; +$_SERVER['SERVER_SOFTWARE'] = NULL; $_SERVER['REQUEST_METHOD'] = 'GET'; $_SERVER['QUERY_STRING'] = ''; $_SERVER['PHP_SELF'] = $_SERVER['REQUEST_URI'] = '/'; diff --git a/scripts/run-tests.sh b/scripts/run-tests.sh index a5f8b67a83e7..54f47bc53838 100755 --- a/scripts/run-tests.sh +++ b/scripts/run-tests.sh @@ -24,7 +24,7 @@ } else { // Run administrative functions as CLI. - simpletest_script_init("PHP CLI"); + simpletest_script_init(NULL); } // Bootstrap to perform initial validation or other operations. -- GitLab