summaryrefslogtreecommitdiff
path: root/sapi/caudium
diff options
context:
space:
mode:
authorDavid Hedbor <neotron@php.net>2001-06-08 16:31:22 +0000
committerDavid Hedbor <neotron@php.net>2001-06-08 16:31:22 +0000
commit6b0f88e82859fb69421ea71b773d87cd56290275 (patch)
treea8e8aa67a7cb93c38b33fdc4ff11690562fd4327 /sapi/caudium
parentc3a3d5c8539b356298058090596c66ee170df673 (diff)
downloadphp-git-6b0f88e82859fb69421ea71b773d87cd56290275.tar.gz
Fix segfault when env vars are missing.
Diffstat (limited to 'sapi/caudium')
-rw-r--r--sapi/caudium/caudium.c68
1 files changed, 37 insertions, 31 deletions
diff --git a/sapi/caudium/caudium.c b/sapi/caudium/caudium.c
index 1f6768af84..44e296b51c 100644
--- a/sapi/caudium/caudium.c
+++ b/sapi/caudium/caudium.c
@@ -474,50 +474,56 @@ static zend_module_entry php_caudium_module = {
};
-static void sapi_caudium_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS_DC)
+INLINE static void low_sapi_caudium_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS_DC)
{
+ char *tmp;
php_register_variable("PHP_SELF", SG(request_info).request_uri,
track_vars_array ELS_CC PLS_CC);
php_register_variable("GATEWAY_INTERFACE", "CGI/1.1",
track_vars_array ELS_CC PLS_CC);
- php_register_variable("REQUEST_METHOD", (char *) SG(request_info).request_method,
+ php_register_variable("REQUEST_METHOD",
+ (char *) SG(request_info).request_method,
track_vars_array ELS_CC PLS_CC);
php_register_variable("REQUEST_URI", SG(request_info).request_uri,
track_vars_array ELS_CC PLS_CC);
php_register_variable("PATH_TRANSLATED", SG(request_info).path_translated,
track_vars_array ELS_CC PLS_CC);
- php_register_variable("SERVER_NAME", lookup_string_header("SERVER_NAME", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("SERVER_PORT", lookup_string_header("SERVER_PORT", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("SERVER_PROTOCOL", lookup_string_header("SERVER_PROTOCOL", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("SCRIPT_NAME", lookup_string_header("SCRIPT_NAME", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("SCRIPT_FILENAME", lookup_string_header("SCRIPT_FILENAME", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("REMOTE_ADDR", lookup_string_header("REMOTE_ADDR", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("REMOTE_PORT", lookup_string_header("REMOTE_PORT", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("DOCUMENT_ROOT", lookup_string_header("DOCUMENT_ROOT", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("HTTP_CONNECTION", lookup_string_header("HTTP_CONNECTION", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("HTTP_USER_AGENT", lookup_string_header("HTTP_USER_AGENT", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("DOCUMENT_ROOT", lookup_string_header("DOCUMENT_ROOT", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("QUERY_STRING", lookup_string_header("QUERY_STRING", ""),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("REMOTE_USER", lookup_string_header("REMOTE_USER", NULL),
- track_vars_array ELS_CC PLS_CC);
- php_register_variable("REMOTE_PASSWORD", lookup_string_header("REMOTE_PASSWORD", NULL),
- track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("SERVER_NAME", NULL)) != NULL)
+ php_register_variable("SERVER_NAME", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("SERVER_PORT", NULL)) != NULL)
+ php_register_variable("SERVER_PORT", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("SERVER_PROTOCOL", NULL)) != NULL)
+ php_register_variable("SERVER_PROTOCOL", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("SCRIPT_NAME", NULL)) != NULL)
+ php_register_variable("SCRIPT_NAME", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("SCRIPT_FILENAME", NULL)) != NULL)
+ php_register_variable("SCRIPT_FILENAME", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("REMOTE_ADDR", NULL)) != NULL)
+ php_register_variable("REMOTE_ADDR", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("REMOTE_PORT", NULL)) != NULL)
+ php_register_variable("REMOTE_PORT", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("DOCUMENT_ROOT", NULL)) != NULL)
+ php_register_variable("DOCUMENT_ROOT", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("HTTP_CONNECTION", NULL)) != NULL)
+ php_register_variable("HTTP_CONNECTION", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("HTTP_USER_AGENT", NULL)) != NULL)
+ php_register_variable("HTTP_USER_AGENT", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("DOCUMENT_ROOT", NULL)) != NULL)
+ php_register_variable("DOCUMENT_ROOT", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("QUERY_STRING", "")) != NULL)
+ php_register_variable("QUERY_STRING", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("REMOTE_USER", NULL)) != NULL)
+ php_register_variable("REMOTE_USER", tmp, track_vars_array ELS_CC PLS_CC);
+ if( (tmp = lookup_string_header("REMOTE_PASSWORD", NULL)) != NULL)
+ php_register_variable("REMOTE_PASSWORD", tmp, track_vars_array ELS_CC PLS_CC);
+
}
-
+static void sapi_caudium_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS_DC)
+{
+ THREAD_SAFE_RUN(low_sapi_caudium_register_variables(track_vars_array ELS_CC SLS_CC PLS_CC), "register_variables");
+}
/* this structure is static (as in "it does not change") */
static sapi_module_struct caudium_sapi_module = {