diff options
author | Rasmus Lerdorf <rasmus@php.net> | 2000-08-02 22:48:45 +0000 |
---|---|---|
committer | Rasmus Lerdorf <rasmus@php.net> | 2000-08-02 22:48:45 +0000 |
commit | 76a2d2538c42934341a6257f0ba54723048116df (patch) | |
tree | 14d2b166c0d75444a9ec6d3be15d45c5154c6c15 /main/SAPI.c | |
parent | f896b9a354af45508431900a70f7af9ce943aba4 (diff) | |
download | php-git-76a2d2538c42934341a6257f0ba54723048116df.tar.gz |
Heads up! I have moved the headers_only and response_code checks out of
SAPI and down into the individual SAPI modules. I have made the
appropriate changes in all the SAPI modules, but please verify these.
The reason for this change is that Apache sometimes will feed PHP
a request_method of GET but have r->header_only set to true. This happens
in an ErrorDocument redirect. In this same scenario we want to preserve
the status code as well instead of just overwriting it with a 200 and
losing this information. For now the other sapi modules act exactly as
before since they probably do not make this distinction, and they may
not even have a valid response code this early in the request.
@ Fix HEAD request bug on an Apache ErrorDocument redirect and preserve
@ the status code across the redirect as well. (Rasmus)
Diffstat (limited to 'main/SAPI.c')
-rw-r--r-- | main/SAPI.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/main/SAPI.c b/main/SAPI.c index ae89815a82..c3e1bb720e 100644 --- a/main/SAPI.c +++ b/main/SAPI.c @@ -267,19 +267,27 @@ SAPI_API void sapi_activate(SLS_D) zend_llist_init(&SG(sapi_headers).headers, sizeof(sapi_header_struct), (void (*)(void *)) sapi_free_header, 0); SG(sapi_headers).send_default_content_type = 1; + /* SG(sapi_headers).http_response_code = 200; SG(sapi_headers).http_status_line = NULL; + */ SG(headers_sent) = 0; SG(read_post_bytes) = 0; SG(request_info).post_data = NULL; SG(request_info).current_user = NULL; SG(request_info).current_user_length = 0; +#if 0 + /* This can't be done here. We need to do that in the individual SAPI + * modules because you can actually have a GET request that is only + * allowed to send back headers. + */ if (SG(request_info).request_method && !strcmp(SG(request_info).request_method, "HEAD")) { SG(request_info).headers_only = 1; } else { SG(request_info).headers_only = 0; } +#endif if (SG(server_context)) { if (SG(request_info).request_method |