The meaning of ngx_http_request_t.out ?

Maxim Dounin mdounin at
Tue Aug 27 14:21:00 UTC 2013


On Tue, Aug 27, 2013 at 11:21:38AM +0800, 邓尧 wrote:

> Hi,
> I'm writing an nginx module, it does something similar to the sub module.
> After some research I succeeded in handling the ngx_chain_t pointer passed
> to my body filter. My module seems to work well for static files.
> When my module is handling PHP responses (fastcgi), sometimes the
> ngx_chain_t pointer is NULL. I simply call the next body filter in such
> situation like the sub module body filter. However function
> ngx_http_write_filter() will fail, because r->out isn't NULL
> and the buf's in r->out are of zero size.
> My questions are: what's the meaning of r->out? how should I modify it in
> my body filter ? Could I simply return NGX_OK in my body filter without
> calling the next body filter if the ngx_chain_t pointer is NULL ?

The r->out is write filter's private data, you shouldn't touch it 
in your module.  And it shouldn't contain zero size non-special 
buffers, if it does - there is a bug somewhere (most likely in 
your filter).

Maxim Dounin

More information about the nginx-devel mailing list