On 27 Dec 2010, at 12:30, cronfy wrote:

> 
> 
> > Thanks, I tried it. Currently filter function looks like this:
> >
> > static apr_status_t procinfo_filter(ap_filter_t *f,
> >                                    apr_bucket_brigade *b)
> 
> Why are you doing this in a filter?  You should be manipulating
> the response *body* in a filter, but the *headers* in a processing hook.
> 
> I did not know about that. As I said, I've taken code from mod_expires, and 
> it modifies headers via filter.
> What hook should I use to manipulate headers *AFTER* content generation was 
> finished?

The headers commonly get sent to the client *BEFORE* content generation is 
finished.
That's one reason it's rarely a good idea to manipulate them in a filter.

Though with the code you posted it doesn't look like *the* problem, provided
your filter is ahead of HTTP in the filter chain.

> > With no luck for 3xx responses. It works even for 404 Not Found, but not 
> > for 3xx.
> Where does the 3xx come from?  Is it a script, or something using the
> same (util_script) processing path like mod_asis?  Or a hooked function?
> 
> I tested 304 response for usual static file, and 304 response generated by 
> php script. Headers were not set in both cases.

I guess where 304 runs legitimately, it knows there's no response body to filter
(because it's forbidden by the HTTP spec), so it's not running content filters 
at all.
But I couldn't say for sure OTTOMH.

-- 
Nick Kew

Reply via email to