diff options
author | Arnaud Le Blanc <lbarnaud@php.net> | 2008-07-24 09:12:45 +0000 |
---|---|---|
committer | Arnaud Le Blanc <lbarnaud@php.net> | 2008-07-24 09:12:45 +0000 |
commit | aa31988e43bc350d935a555ea2a5beabdb119245 (patch) | |
tree | 10fb942b1dc2b2222f66d0d94ecb7fb13f27802a /sapi/cli/php_cli.c | |
parent | 01b8829f73bd9e83cf81b24ab47d40b53da54059 (diff) | |
download | php-git-aa31988e43bc350d935a555ea2a5beabdb119245.tar.gz |
MFH: Allow filters to work on INPUT_SERVER in CLI (bug #44779)
Diffstat (limited to 'sapi/cli/php_cli.c')
-rw-r--r-- | sapi/cli/php_cli.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c index 68e2af3589..eb2aa8f27a 100644 --- a/sapi/cli/php_cli.c +++ b/sapi/cli/php_cli.c @@ -292,19 +292,35 @@ static char *script_filename = ""; static void sapi_cli_register_variables(zval *track_vars_array TSRMLS_DC) /* {{{ */ { + size_t len; + char *docroot = ""; + /* In CGI mode, we consider the environment to be a part of the server * variables */ php_import_environment_variables(track_vars_array TSRMLS_CC); /* Build the special-case PHP_SELF variable for the CLI version */ - php_register_variable("PHP_SELF", php_self, track_vars_array TSRMLS_CC); - php_register_variable("SCRIPT_NAME", php_self, track_vars_array TSRMLS_CC); + len = strlen(php_self); + if (sapi_module.input_filter(PARSE_SERVER, "PHP_SELF", &php_self, len, &len TSRMLS_CC)) { + php_register_variable("PHP_SELF", php_self, track_vars_array TSRMLS_CC); + } + if (sapi_module.input_filter(PARSE_SERVER, "SCRIPT_NAME", &php_self, len, &len TSRMLS_CC)) { + php_register_variable("SCRIPT_NAME", php_self, track_vars_array TSRMLS_CC); + } /* filenames are empty for stdin */ - php_register_variable("SCRIPT_FILENAME", script_filename, track_vars_array TSRMLS_CC); - php_register_variable("PATH_TRANSLATED", script_filename, track_vars_array TSRMLS_CC); + len = strlen(script_filename); + if (sapi_module.input_filter(PARSE_SERVER, "SCRIPT_FILENAME", &script_filename, len, &len TSRMLS_CC)) { + php_register_variable("SCRIPT_FILENAME", script_filename, track_vars_array TSRMLS_CC); + } + if (sapi_module.input_filter(PARSE_SERVER, "PATH_TRANSLATED", &script_filename, len, &len TSRMLS_CC)) { + php_register_variable("PATH_TRANSLATED", script_filename, track_vars_array TSRMLS_CC); + } /* just make it available */ - php_register_variable("DOCUMENT_ROOT", "", track_vars_array TSRMLS_CC); + len = 0U; + if (sapi_module.input_filter(PARSE_SERVER, "DOCUMENT_ROOT", &docroot, len, &len TSRMLS_CC)) { + php_register_variable("DOCUMENT_ROOT", docroot, track_vars_array TSRMLS_CC); + } } /* }}} */ |