]> git.kaiwu.me - nginx.git/commit
Event pipe: fixes for complex protocols.
authorMaxim Dounin <mdounin@mdounin.ru>
Mon, 31 Oct 2011 09:53:16 +0000 (09:53 +0000)
committerMaxim Dounin <mdounin@mdounin.ru>
Mon, 31 Oct 2011 09:53:16 +0000 (09:53 +0000)
commit59205ce10909ca0b50fbc70f4bf98e539ce176d5
tree7e1e5c8dfa7c679611e882169773c2cf713aa821
parent200a0d86562d23176d0147936c518e99cf807fa0
Event pipe: fixes for complex protocols.

1. In ngx_event_pipe_write_chain_to_temp_file() make sure to fully write
   all shadow buffers up to last_shadow.  With this change recycled buffers
   cannot appear in p->out anymore.  This also fixes segmentation faults
   observed due to ngx_event_pipe_write_chain_to_temp() not freeing any
   raw buffers while still returning NGX_OK.

2. In ngx_event_pipe_write_to_downstream() we now properly check for busy
   size as a size of buffers, not a size of data in these buffers.  This
   fixes situations where all available buffers became busy (including
   segmentation faults due to this).

3. The ngx_event_pipe_free_shadow_raw_buf() function is dropped.  It's
   incorrect and not needed.
src/event/ngx_event_pipe.c