zend_file_handle file_handle;
char *s;
/* temporary locals */
- char *_cgi_filename=NULL;
- int _cgi_started=0;
+ int cgi_started=0;
int behavior=PHP_MODE_STANDARD;
int no_headers=0;
#if SUPPORT_INTERACTIVE
sapi_startup(&sapi_module);
+ SG(request_info).path_translated = NULL;
+
#if WIN32|WINNT
_fmode = _O_BINARY; /*sets default for file streams to binary */
setmode(_fileno(stdin), O_BINARY); /* make the stdio mode be binary */
while ((c = getopt(argc, argv, "c:qvisnaeh?vf:")) != -1) {
switch (c) {
case 'f':
- if (!_cgi_started){
+ if (!cgi_started){
if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC)==FAILURE) {
php_module_shutdown();
return FAILURE;
if (no_headers) {
SG(headers_sent) = 1;
}
- _cgi_started=1;
- _cgi_filename = estrdup(optarg);
+ cgi_started=1;
+ SG(request_info).path_translated = estrdup(optarg);
/* break missing intentionally */
case 'q':
no_headers = 1;
break;
case 'v':
- if (!_cgi_started) {
+ if (!cgi_started) {
if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC)==FAILURE) {
php_module_shutdown();
return FAILURE;
exit(1);
break;
case 'i':
- if (!_cgi_started) {
+ if (!cgi_started) {
if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC)==FAILURE) {
php_module_shutdown();
return FAILURE;
if (no_headers) {
SG(headers_sent) = 1;
}
- _cgi_started=1;
+ cgi_started=1;
php3_TreatHeaders();
_php3_info();
exit(1);
EG(interactive) = interactive;
#endif
- if (!_cgi_started) {
+ if (!cgi_started) {
if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC)==FAILURE) {
php_module_shutdown();
return FAILURE;
file_handle.filename = "-";
file_handle.type = ZEND_HANDLE_FP;
file_handle.handle.fp = stdin;
- if (_cgi_filename) {
- request_info.filename = _cgi_filename;
- }
php3_TreatHeaders();
}
SG(request_info).query_string = s;
}
- if (!request_info.filename && argc > optind)
- request_info.filename = argv[optind];
+ if (!SG(request_info).path_translated && argc > optind)
+ SG(request_info).path_translated = argv[optind];
}
/* If for some reason the CGI interface is not setting the
- PATH_TRANSLATED correctly, request_info.filename is NULL.
+ PATH_TRANSLATED correctly, SG(request_info).path_translated is NULL.
We still call php3_fopen_for_parser, because if you set doc_root
or user_dir configuration directives, PATH_INFO is used to construct
the filename as a side effect of php3_fopen_for_parser.
*/
- if (cgi || request_info.filename) {
- file_handle.filename = request_info.filename;
+ if (cgi || SG(request_info).path_translated) {
file_handle.handle.fp = php3_fopen_for_parser();
- SG(request_info).path_translated = file_handle.filename;
+ file_handle.filename = SG(request_info).path_translated;
}
if (cgi && !file_handle.handle.fp) {
page_mtime = r->finfo.st_mtime;
#else
if (page_uid == -1) {
- path = request_info.filename;
+ path = SG(request_info).path_translated;
if (path != NULL) {
if (stat(path, &sb) == -1) {
php3_error(E_WARNING, "Unable to find file: '%s'", path);
PLS_FETCH();
SLS_FETCH();
- fn = request_info.filename;
+ fn = SG(request_info).path_translated;
path_info = SG(request_info).request_uri;
#if HAVE_PWD_H
if (PG(user_dir) && *PG(user_dir)
strcat(fn, PG(user_dir)); /* safe */
strcat(fn, "/"); /* safe */
strcat(fn, s + 1); /* safe (shorter than path_info) */
- STR_FREE(request_info.filename);
- request_info.filename = fn;
+ STR_FREE(SG(request_info).path_translated);
+ SG(request_info).path_translated = fn;
}
}
}
if ('/' == path_info[0])
l--;
strcpy(fn + l, path_info);
- STR_FREE(request_info.filename);
- request_info.filename = fn;
+ STR_FREE(SG(request_info).path_translated);
+ SG(request_info).path_translated = fn;
}
} /* if doc_root && path_info */
if (!fn) {
- /* we have to free request_info.filename here because
+ /* we have to free SG(request_info).path_translated here because
php3_destroy_request_info assumes that it will get
freed when the include_names hash is emptied, but
we're not adding it in this case */
- STR_FREE(request_info.filename);
- request_info.filename = NULL;
+ STR_FREE(SG(request_info).path_translated);
+ SG(request_info).path_translated = NULL;
return NULL;
}
fp = fopen(fn, "r");
}
if (!fp) {
php3_error(E_CORE_ERROR, "Unable to open %s", fn);
- STR_FREE(request_info.filename); /* for same reason as above */
+ STR_FREE(SG(request_info).path_translated); /* for same reason as above */
return NULL;
}
chdir(temp);
}
efree(temp);
+ SG(request_info).path_translated = fn;
return fp;
}
USE_SAPI is defined, because cgi will also be
interfaced in USE_SAPI */
#if CGI_BINARY || USE_SAPI || FHTTPD
- if (!request_info.filename || (stat(request_info.filename,&statbuf)==-1)) {
+ if (!SG(request_info).path_translated || (stat(SG(request_info).path_translated,&statbuf)==-1)) {
return empty_string;
}
uid = statbuf.st_uid;
} else {
request_info.filename = NULL;
}
-#else
- if (SG(request_info).path_translated) {
- request_info.filename = estrdup(SG(request_info).path_translated);
- } else {
- request_info.filename = NULL;
- }
#endif
return SUCCESS;
}
#define _REQUEST_INFO_H_
typedef struct {
- char *filename;
char *script_name;
char *current_user;
int current_user_length;