summaryrefslogtreecommitdiff
path: root/sapi/apache_hooks/mod_php5.c
diff options
context:
space:
mode:
authorSVN Migration <svn@php.net>2008-12-03 20:30:45 +0000
committerSVN Migration <svn@php.net>2008-12-03 20:30:45 +0000
commit2876046398950e59c3b3c460e67e6fec7ff2ba3c (patch)
tree33b2b8b4b859960a6446ad19d0ada1c55f9cfcda /sapi/apache_hooks/mod_php5.c
parent3fb86b0b9e79e6a3312b694f30ee627e2e1b325c (diff)
downloadphp-git-php-5.3.0alpha2.tar.gz
This commit was manufactured by cvs2svn to create tag 'php_5_3_0alpha2'.php-5.3.0alpha2
Diffstat (limited to 'sapi/apache_hooks/mod_php5.c')
-rw-r--r--sapi/apache_hooks/mod_php5.c61
1 files changed, 21 insertions, 40 deletions
diff --git a/sapi/apache_hooks/mod_php5.c b/sapi/apache_hooks/mod_php5.c
index 1e66f44328..83cca78b80 100644
--- a/sapi/apache_hooks/mod_php5.c
+++ b/sapi/apache_hooks/mod_php5.c
@@ -34,7 +34,7 @@ static void php_save_umask(void);
static void php_restore_umask(void);
static int sapi_apache_read_post(char *buffer, uint count_bytes TSRMLS_DC);
static char *sapi_apache_read_cookies(TSRMLS_D);
-static int sapi_apache_header_handler(sapi_header_struct *sapi_header, sapi_header_op_enum op, sapi_headers_struct *sapi_headers TSRMLS_DC);
+static int sapi_apache_header_handler(sapi_header_struct *sapi_header, sapi_headers_struct *sapi_headers TSRMLS_DC);
static int sapi_apache_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC);
static int send_php(request_rec *r, int display_source_mode, char *filename);
static int send_parsed_php(request_rec * r);
@@ -308,54 +308,35 @@ static char *sapi_apache_read_cookies(TSRMLS_D)
/* {{{ sapi_apache_header_handler
*/
-static int sapi_apache_header_handler(sapi_header_struct *sapi_header, sapi_header_op_enum op, sapi_headers_struct *sapi_headers TSRMLS_DC)
+static int sapi_apache_header_handler(sapi_header_struct *sapi_header, sapi_headers_struct *sapi_headers TSRMLS_DC)
{
char *header_name, *header_content, *p;
request_rec *r = (request_rec *) SG(server_context);
- if(!r) {
- return 0;
- }
-
- switch(op) {
- case SAPI_HEADER_DELETE_ALL:
- clear_table(r->headers_out);
- return 0;
- case SAPI_HEADER_DELETE:
- table_unset(r->headers_out, sapi_header->header);
- return 0;
+ header_name = sapi_header->header;
- case SAPI_HEADER_ADD:
- case SAPI_HEADER_REPLACE:
- header_name = sapi_header->header;
-
- header_content = p = strchr(header_name, ':');
- if (!p) {
- return 0;
- }
+ header_content = p = strchr(header_name, ':');
+ if (!p) {
+ efree(sapi_header->header);
+ return 0;
+ }
- *p = 0;
- do {
- header_content++;
- } while (*header_content==' ');
-
- if (!strcasecmp(header_name, "Content-Type")) {
- r->content_type = pstrdup(r->pool, header_content);
- } else if (!strcasecmp(header_name, "Set-Cookie")) {
- table_add(r->headers_out, header_name, header_content);
- } else if (op == SAPI_HEADER_REPLACE) {
- table_set(r->headers_out, header_name, header_content);
- } else {
- table_add(r->headers_out, header_name, header_content);
- }
+ *p = 0;
+ do {
+ header_content++;
+ } while (*header_content==' ');
- *p = ':'; /* a well behaved header handler shouldn't change its original arguments */
+ if (!strcasecmp(header_name, "Content-Type")) {
+ r->content_type = pstrdup(r->pool, header_content);
+ } else if (!strcasecmp(header_name, "Set-Cookie")) {
+ table_add(r->headers_out, header_name, header_content);
+ } else {
+ table_set(r->headers_out, header_name, header_content);
+ }
- return SAPI_HEADER_ADD;
+ *p = ':'; /* a well behaved header handler shouldn't change its original arguments */
- default:
- return 0;
- }
+ return SAPI_HEADER_ADD;
}
/* }}} */