mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
- 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
This commit is contained in:
parent
6864e05ae3
commit
b2449f929c
7 changed files with 25 additions and 19 deletions
22
main/main.c
22
main/main.c
|
@ -702,13 +702,6 @@ int php_request_startup(CLS_D ELS_DC PLS_DC SLS_DC)
|
||||||
} else if (PG(implicit_flush)) {
|
} else if (PG(implicit_flush)) {
|
||||||
php_start_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;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -1007,11 +1000,24 @@ static inline void php_register_server_variables(ELS_D SLS_DC PLS_DC)
|
||||||
INIT_PZVAL(array_ptr);
|
INIT_PZVAL(array_ptr);
|
||||||
zend_hash_add(&EG(symbol_table), "HTTP_SERVER_VARS", sizeof("HTTP_SERVER_VARS"), &array_ptr, sizeof(pval *),NULL);
|
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)) {
|
if (PG(register_argc_argv)) {
|
||||||
php_build_argv(SG(request_info).query_string, array_ptr ELS_CC PLS_CC);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
#include "zend_globals.h"
|
#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 *p = NULL;
|
||||||
char *ip; /* index pointer */
|
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 */
|
/* FIXME: XXX: not binary safe, discards returned length */
|
||||||
php_url_decode(var, strlen(var));
|
php_url_decode(var, strlen(var));
|
||||||
php_url_decode(val, strlen(val));
|
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) {
|
if (arg == PARSE_COOKIE) {
|
||||||
var = strtok_r(NULL, ";", &strtok_buf);
|
var = strtok_r(NULL, ";", &strtok_buf);
|
||||||
|
@ -303,7 +303,7 @@ void php_import_environment_variables(ELS_D PLS_DC)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
t = estrndup(*env, p - *env);
|
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);
|
efree(t);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,6 +42,6 @@
|
||||||
|
|
||||||
void php_treat_data(int arg, char *str ELS_DC PLS_DC SLS_DC);
|
void php_treat_data(int arg, char *str ELS_DC PLS_DC SLS_DC);
|
||||||
void php_import_environment_variables(ELS_D PLS_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 */
|
#endif /* _PHP_VARIABLES_H */
|
||||||
|
|
|
@ -157,7 +157,7 @@ static void php_mime_split(char *buf, int cnt, char *boundary)
|
||||||
*(loc - 4) = '\0';
|
*(loc - 4) = '\0';
|
||||||
|
|
||||||
/* Magic function that figures everything out */
|
/* 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 */
|
/* And a little kludge to pick out special MAX_FILE_SIZE */
|
||||||
itype = php_check_ident_type(namebuf);
|
itype = php_check_ident_type(namebuf);
|
||||||
|
|
|
@ -245,14 +245,14 @@ static void sapi_apache_register_server_variables(zval *track_vars_array ELS_DC
|
||||||
} else {
|
} else {
|
||||||
val = empty_string;
|
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 */
|
/* insert special variables */
|
||||||
if (script_filename) {
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 */
|
/* Build the special-case PHP_SELF variable for the CGI version */
|
||||||
#if FORCE_CGI_REDIRECT
|
#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
|
#else
|
||||||
{
|
{
|
||||||
char *sn;
|
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);
|
val = emalloc(l + 1);
|
||||||
php_sprintf(val, "%s%s", (sn ? sn : ""), (pi ? pi : "")); /* SAFE */
|
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);
|
efree(val);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -328,7 +328,7 @@ static void sapi_isapi_register_server_variables(zval *track_vars_array ELS_DC S
|
||||||
value++;
|
value++;
|
||||||
}
|
}
|
||||||
*colon = 0;
|
*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 = ':';
|
*colon = ':';
|
||||||
}
|
}
|
||||||
variable = strtok_r(NULL, "\r\n", &strtok_buf);
|
variable = strtok_r(NULL, "\r\n", &strtok_buf);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue