Mercurial > hg > nginx
view auto/lib/zlib/make @ 5876:973fded4f461
Gzip, gunzip: flush busy buffers if any.
Previous code resulted in transfer stalls when client happened
to read all the data in buffers at once, while all gzip buffers
were exhausted (but ctx->nomem wasn't set). Make sure to call
next body filter at least once per call if there are busy buffers.
Additionally, handling of calls with NULL chain was changed to follow
the same logic, i.e., next body filter is only called with NULL chain
if there are busy buffers. This is expected to fix "output chain is empty"
alerts as reported by some users after c52a761a2029 (1.5.7).
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 15 Oct 2014 22:57:23 +0400 |
parents | 3d2d3e1cf427 |
children | 78f8ac479735 |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. case "$NGX_CC_NAME" in msvc*) ngx_makefile=makefile.msvc ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC" ngx_zlib="ZLIB=\"$ZLIB\"" ;; owc*) ngx_makefile=makefile.owc ngx_opt="CPU_OPT=\"$CPU_OPT\"" ngx_zlib=`echo ZLIB=\"$ZLIB\" | sed -e "s/\//$ngx_regex_dirsep/g"` ;; bcc) ngx_makefile=makefile.bcc ngx_opt="-DCPU_OPT=\"$CPU_OPT\"" ngx_zlib=`echo \-DZLIB=\"$ZLIB\" | sed -e "s/\//$ngx_regex_dirsep/g"` ;; *) ngx_makefile= ;; esac done=NO case "$NGX_PLATFORM" in win32) if [ -n "$ngx_makefile" ]; then cat << END >> $NGX_MAKEFILE `echo "$ZLIB/zlib.lib: $NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"` \$(MAKE) -f auto/lib/zlib/$ngx_makefile $ngx_opt $ngx_zlib END else cat << END >> $NGX_MAKEFILE $ZLIB/libz.a: $NGX_MAKEFILE cd $ZLIB \\ && \$(MAKE) distclean \\ && \$(MAKE) -f win32/Makefile.gcc \\ CFLAGS="$ZLIB_OPT" CC="\$(CC)" \\ libz.a END fi done=YES ;; # FreeBSD: i386 # Linux: i686 *:i386 | *:i686) case $ZLIB_ASM in pentium) cat << END >> $NGX_MAKEFILE $ZLIB/libz.a: $NGX_MAKEFILE cd $ZLIB \\ && \$(MAKE) distclean \\ && cp contrib/asm586/match.S . \\ && CFLAGS="$ZLIB_OPT -DASMV" CC="\$(CC)" \\ ./configure \\ && \$(MAKE) OBJA=match.o libz.a END done=YES ;; pentiumpro) cat << END >> $NGX_MAKEFILE $ZLIB/libz.a: $NGX_MAKEFILE cd $ZLIB \\ && \$(MAKE) distclean \\ && cp contrib/asm686/match.S . \\ && CFLAGS="$ZLIB_OPT -DASMV" CC="\$(CC)" \\ ./configure \\ && \$(MAKE) OBJA=match.o libz.a END done=YES ;; NO) ;; *) echo "$0: error: invalid --with-zlib-asm=$ZLIB_ASM option." echo "The valid values are \"pentium\" and \"pentiumpro\" only". echo exit 1; ;; esac ;; esac if [ $done = NO ]; then cat << END >> $NGX_MAKEFILE $ZLIB/libz.a: $NGX_MAKEFILE cd $ZLIB \\ && \$(MAKE) distclean \\ && CFLAGS="$ZLIB_OPT" CC="\$(CC)" \\ ./configure \\ && \$(MAKE) libz.a END fi