- 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:
Zeev Suraski 2000-01-29 11:55:44 +00:00
parent 6864e05ae3
commit b2449f929c
7 changed files with 25 additions and 19 deletions

View file

@ -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);
}
} }

View file

@ -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);
} }
} }

View file

@ -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 */

View file

@ -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);

View file

@ -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);
} }

View file

@ -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

View file

@ -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);