From b2449f929cdee3539c4667f31dc482ac34fc56ab Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Sat, 29 Jan 2000 11:55:44 +0000 Subject: [PATCH] - Change the argument order of php_register_variable() to something more intuitive. - Make the authentication variables be a part of the HTTP_SERVER_VARS[] array --- main/main.c | 22 ++++++++++++++-------- main/php_variables.c | 6 +++--- main/php_variables.h | 2 +- main/rfc1867.c | 2 +- sapi/apache/mod_php4.c | 6 +++--- sapi/cgi/cgi_main.c | 4 ++-- sapi/isapi/php4isapi.c | 2 +- 7 files changed, 25 insertions(+), 19 deletions(-) diff --git a/main/main.c b/main/main.c index 5fb79f0702f..7c33762926a 100644 --- a/main/main.c +++ b/main/main.c @@ -702,13 +702,6 @@ int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC) } else if (PG(implicit_flush)) { php_start_implicit_flush(); } - - if (SG(request_info).auth_user) { - php_register_variable(SG(request_info).auth_user, "PHP_AUTH_USER", NULL ELS_CC PLS_CC); - } - if (SG(request_info).auth_password) { - php_register_variable(SG(request_info).auth_password, "PHP_AUTH_PW", NULL ELS_CC PLS_CC); - } return SUCCESS; } @@ -1007,11 +1000,24 @@ static inline void php_register_server_variables(ELS_D SLS_DC PLS_DC) INIT_PZVAL(array_ptr); zend_hash_add(&EG(symbol_table), "HTTP_SERVER_VARS", sizeof("HTTP_SERVER_VARS"), &array_ptr, sizeof(pval *),NULL); } - sapi_module.register_server_variables(array_ptr ELS_CC SLS_CC PLS_CC); + /* Server variables */ + if (sapi_module.register_server_variables) { + sapi_module.register_server_variables(array_ptr ELS_CC SLS_CC PLS_CC); + } + + /* argv/argc support */ if (PG(register_argc_argv)) { php_build_argv(SG(request_info).query_string, array_ptr ELS_CC PLS_CC); } + + /* PHP Authentication support */ + if (SG(request_info).auth_user) { + php_register_variable("PHP_AUTH_USER", SG(request_info).auth_user, array_ptr ELS_CC PLS_CC); + } + if (SG(request_info).auth_password) { + php_register_variable("PHP_AUTH_PW", SG(request_info).auth_password, array_ptr ELS_CC PLS_CC); + } } diff --git a/main/php_variables.c b/main/php_variables.c index 383442ab66e..53050f36f0b 100644 --- a/main/php_variables.c +++ b/main/php_variables.c @@ -28,7 +28,7 @@ #include "zend_globals.h" -PHPAPI void php_register_variable(char *val, char *var, pval *track_vars_array ELS_DC PLS_DC) +PHPAPI void php_register_variable(char *var, char *val, pval *track_vars_array ELS_DC PLS_DC) { char *p = NULL; char *ip; /* index pointer */ @@ -265,7 +265,7 @@ void php_treat_data(int arg, char *str ELS_DC PLS_DC SLS_DC) /* FIXME: XXX: not binary safe, discards returned length */ php_url_decode(var, strlen(var)); php_url_decode(val, strlen(val)); - php_register_variable(val, var, array_ptr ELS_CC PLS_CC); + php_register_variable(var, val, array_ptr ELS_CC PLS_CC); } if (arg == PARSE_COOKIE) { var = strtok_r(NULL, ";", &strtok_buf); @@ -303,7 +303,7 @@ void php_import_environment_variables(ELS_D PLS_DC) continue; } t = estrndup(*env, p - *env); - php_register_variable(p+1, t, array_ptr ELS_CC PLS_CC); + php_register_variable(t, p+1, array_ptr ELS_CC PLS_CC); efree(t); } } diff --git a/main/php_variables.h b/main/php_variables.h index 826f77dc760..932b86bcc27 100644 --- a/main/php_variables.h +++ b/main/php_variables.h @@ -42,6 +42,6 @@ void php_treat_data(int arg, char *str ELS_DC PLS_DC SLS_DC); void php_import_environment_variables(ELS_D PLS_DC); -PHPAPI void php_register_variable(char *val, char *var, pval *track_vars_array ELS_DC PLS_DC); +PHPAPI void php_register_variable(char *var, char *val, pval *track_vars_array ELS_DC PLS_DC); #endif /* _PHP_VARIABLES_H */ diff --git a/main/rfc1867.c b/main/rfc1867.c index e418fe06060..459d65d7ea5 100644 --- a/main/rfc1867.c +++ b/main/rfc1867.c @@ -157,7 +157,7 @@ static void php_mime_split(char *buf, int cnt, char *boundary) *(loc - 4) = '\0'; /* Magic function that figures everything out */ - php_register_variable(ptr,namebuf,http_post_vars ELS_CC PLS_CC); + php_register_variable(namebuf, ptr, http_post_vars ELS_CC PLS_CC); /* And a little kludge to pick out special MAX_FILE_SIZE */ itype = php_check_ident_type(namebuf); diff --git a/sapi/apache/mod_php4.c b/sapi/apache/mod_php4.c index 6b3bbc80ef8..1f03a845866 100644 --- a/sapi/apache/mod_php4.c +++ b/sapi/apache/mod_php4.c @@ -245,14 +245,14 @@ static void sapi_apache_register_server_variables(zval *track_vars_array ELS_DC } else { val = empty_string; } - php_register_variable(val, elts[i].key, NULL ELS_CC PLS_CC); + php_register_variable(elts[i].key, val, NULL ELS_CC PLS_CC); } /* insert special variables */ if (script_filename) { - php_register_variable(script_filename, "PATH_TRANSLATED", NULL ELS_CC PLS_CC); + php_register_variable("PATH_TRANSLATED", script_filename, NULL ELS_CC PLS_CC); } - php_register_variable(((request_rec *) SG(server_context))->uri, "PHP_SELF", NULL ELS_CC PLS_CC); + php_register_variable("PHP_SELF", ((request_rec *) SG(server_context))->uri, NULL ELS_CC PLS_CC); } diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c index 2f358780868..d942d264a89 100644 --- a/sapi/cgi/cgi_main.c +++ b/sapi/cgi/cgi_main.c @@ -133,7 +133,7 @@ static void sapi_cgi_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS /* Build the special-case PHP_SELF variable for the CGI version */ #if FORCE_CGI_REDIRECT - php_register_variable((SG(request_info).request_uri ? SG(request_info).request_uri, "PHP_SELF", track_vars_array ELS_CC PLS_CC); + php_register_variable("PHP_SELF", (SG(request_info).request_uri ? SG(request_info).request_uri, track_vars_array ELS_CC PLS_CC); #else { char *sn; @@ -152,7 +152,7 @@ static void sapi_cgi_register_variables(zval *track_vars_array ELS_DC SLS_DC PLS } val = emalloc(l + 1); php_sprintf(val, "%s%s", (sn ? sn : ""), (pi ? pi : "")); /* SAFE */ - php_register_variable(val, "PHP_SELF", track_vars_array ELS_CC PLS_CC); + php_register_variable("PHP_SELF", val, track_vars_array ELS_CC PLS_CC); efree(val); } #endif diff --git a/sapi/isapi/php4isapi.c b/sapi/isapi/php4isapi.c index 151a3316012..8aa39f927c0 100644 --- a/sapi/isapi/php4isapi.c +++ b/sapi/isapi/php4isapi.c @@ -328,7 +328,7 @@ static void sapi_isapi_register_server_variables(zval *track_vars_array ELS_DC S value++; } *colon = 0; - php_register_variable(value, variable, track_vars_array ELS_CC PLS_CC); + php_register_variable(variable, value, track_vars_array ELS_CC PLS_CC); *colon = ':'; } variable = strtok_r(NULL, "\r\n", &strtok_buf);