summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Mansell <joosters@php.net>2001-03-27 16:29:45 +0000
committerBen Mansell <joosters@php.net>2001-03-27 16:29:45 +0000
commit8f710d827e3b8fa7dc4a5cb10e0e7b72e5cd24c9 (patch)
tree19c60f07f204575bd4e0c91d832106f9c46d48a2
parent74ffa31da109db1d453fd68aefbb4deb64ba7b6c (diff)
downloadphp-git-8f710d827e3b8fa7dc4a5cb10e0e7b72e5cd24c9.tar.gz
Changed header handling; before, we were somehow losing
Content-Type: text/html
-rw-r--r--sapi/fastcgi/fastcgi.c39
1 files changed, 7 insertions, 32 deletions
diff --git a/sapi/fastcgi/fastcgi.c b/sapi/fastcgi/fastcgi.c
index 8db43ae792..065b7df0af 100644
--- a/sapi/fastcgi/fastcgi.c
+++ b/sapi/fastcgi/fastcgi.c
@@ -87,41 +87,15 @@ static void sapi_fastcgi_flush( void *server_context )
}
-static int sapi_fastcgi_send_headers(sapi_headers_struct *sapi_headers SLS_DC)
+static void sapi_fastcgi_send_header(sapi_header_struct *sapi_header, void *server_context)
{
- char buf[1024];
- int n = 0;
- zend_llist_position pos;
- sapi_header_struct *h;
-
- switch( sapi_headers->http_response_code ) {
- case 200:
- /* Default, assumed by FastCGI */
- break;
- case 302:
- FCGX_PutS( "Status: 302 Moved Temporarily\r\n", out );
- break;
- case 401:
- FCGX_PutS( "Status: 401 Authorization Required\r\n", out );
- break;
- default:
- FCGX_FPrintF( out, "Status: %d Undescribed\r\\n",
- sapi_headers->http_response_code );
- }
-
- h = zend_llist_get_first_ex(&sapi_headers->headers, &pos);
- while (h) {
- /* TODO: Buffer headers together into one big Put? */
+ if( sapi_header ) {
#ifdef DEBUG_FASTCGI
- fprintf( stderr, "Printing header %s\n", h->header );
+ fprintf( stderr, "Header: %s\n", sapi_header->header );
#endif
- FCGX_PutStr( h->header, h->header_len, out );
- FCGX_PutStr( "\r\n", 2, out );
- h = zend_llist_get_next_ex(&sapi_headers->headers, &pos);
+ FCGX_PutStr( sapi_header->header, sapi_header->header_len, out );
}
FCGX_PutStr( "\r\n", 2, out );
-
- return SAPI_HEADER_SENT_SUCCESSFULLY;
}
static int sapi_fastcgi_read_post(char *buffer, uint count_bytes SLS_DC)
@@ -182,8 +156,8 @@ static sapi_module_struct fastcgi_sapi_module = {
php_error,
NULL,
- sapi_fastcgi_send_headers,
NULL,
+ sapi_fastcgi_send_header,
sapi_fastcgi_read_post,
sapi_fastcgi_read_cookies,
@@ -218,6 +192,7 @@ static void fastcgi_module_main(TLS_D SLS_DC)
static void init_request_info( SLS_D )
{
char *content_length = getenv("CONTENT_LENGTH");
+ char *content_type = getenv( "CONTENT_TYPE" );
const char *auth;
struct stat st;
char *pi = getenv( "PATH_INFO" );
@@ -227,7 +202,7 @@ static void init_request_info( SLS_D )
SG(request_info).request_method = getenv("REQUEST_METHOD");
SG(request_info).query_string = getenv("QUERY_STRING");
SG(request_info).request_uri = path_info;
- SG(request_info).content_type = getenv("CONTENT_TYPE");
+ SG(request_info).content_type = ( content_type ? content_type : "" );
SG(request_info).content_length = (content_length?atoi(content_length):0);
SG(sapi_headers).http_response_code = 200;