Just one question here:
When implementing this into NSAPI, I found the following problem:

NSAPI does not directly allows to remove all headers, you can only do this
step by step. So there are three possibilities to ship around this problem:

a) when SAPI_HEADER_DELETE_ALL is given, in header_handler, do the following
(using the sapi_header_struct given as last parameter):

zend_llist_apply(sapi_headers->headers, (llist_apply_func_t)
php_nsapi_remove_header TSRMLS_CC);

with:
static int php_nsapi_remove_header(sapi_header_struct *sapi_header
TSRMLS_DC)
{
        char *header_name, *p;
        nsapi_request_context *rc = (nsapi_request_context
*)SG(server_context);
        
        header_name = nsapi_strdup(sapi_header->header);
        if (p = strchr(header_name, ':')) *p = 0;

        ...

        param_free(pblock_remove(header_name, rc->rq->srvhdrs));
        nsapi_free(header_name);
        
        return ZEND_HASH_APPLY_KEEP;
}

This would remove all headers, set by PHP. Headers embedded by the server
itself would not be deleted (e.g. "Server:"  etc.)

b) Use some "hack" to get rid of all headers from the server's hashtable
(like apr_table_clear()). This would remove all headers and also some
important headers set by the server itself (like Server:, Chunked response
headers, etc). I am not sure if this would be good, in my opinion
SAPI_HEADER_DELETE_ALL should only remove headers set by PHP itself! What
does the other SAPI developers think, is it safe to remove apaches default
headers????? I am not sure and tend to say: NO!

c) Completely ignore sapi_header_handler like in CGI and set the headers
later in sapi_send_headers() using the given struct with zend_llist_apply().
Then I do not have to take care of adding/removing headers, I set them to
Sun Webserver shortly before starting the response. Why the difference
between header_handler and send_headers? Is it ok to remove header_handler
(like in CGI) and simply feed all headers in send_headers? This would make
life for SAPI developers easier (also maybe in Apache). What is the idea to
respond after each header change?

What do you think?

-----
Uwe Schindler
[EMAIL PROTECTED] - http://www.php.net
NSAPI SAPI developer
Bremen, Germany


> -----Original Message-----
> From: Lukas Kahwe Smith [mailto:[EMAIL PROTECTED]
> Sent: Friday, November 28, 2008 2:07 PM
> To: Arnaud Le Blanc
> Cc: Uwe Schindler; internals@lists.php.net; 'Christian Schmidt'; Alex
> Leigh; George Wang
> Subject: Re: [PHP-DEV] [PATCH] Allow unsetting headers previously set
> usingheader()
> 
> 
> On 13.11.2008, at 14:48, Arnaud Le Blanc wrote:
> 
> > Hi,
> >
> > Committed, thanks Christian :)
> >
> > apache2handler, apache2filter, apache, apache_hooks, cli and cgi
> > SAPIs have
> > been updated.
> >
> > The following SAPIs need to be updated in PHP_5_3 and HEAD:
> > aolserver, continuity, litespeed, nsapi, caudium, phttpd, roxen.
> > (I'm CC-ing
> > known maintainers)
> >
> > More informations on the change can be found in the commit message:
> > http://news.php.net/php.cvs/54228
> 
> 
> err .. whats the status here?
> 
> regards,
> Lukas Kahwe Smith
> [EMAIL PROTECTED]
> 
> 



-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to