Mercurial > hg > nginx-quic
view auto/init @ 4232:487ab473f393
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.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 31 Oct 2011 09:53:16 +0000 |
parents | 4e05bd832e56 |
children | d620f497c50f |
line wrap: on
line source
# Copyright (C) Igor Sysoev NGX_MAKEFILE=$NGX_OBJS/Makefile NGX_MODULES_C=$NGX_OBJS/ngx_modules.c NGX_AUTO_HEADERS_H=$NGX_OBJS/ngx_auto_headers.h NGX_AUTO_CONFIG_H=$NGX_OBJS/ngx_auto_config.h NGX_AUTOTEST=$NGX_OBJS/autotest NGX_AUTOCONF_ERR=$NGX_OBJS/autoconf.err # STUBs NGX_ERR=$NGX_OBJS/autoconf.err MAKEFILE=$NGX_OBJS/Makefile NGX_PCH= NGX_USE_PCH= # check the echo's "-n" option and "\c" capability if echo "test\c" | grep c >/dev/null; then if echo -n test | grep n >/dev/null; then ngx_n= ngx_c= else ngx_n=-n ngx_c= fi else ngx_n= ngx_c='\c' fi # create Makefile cat << END > Makefile default: build clean: rm -rf Makefile $NGX_OBJS END