Mercurial > hg > nginx-quic
view auto/lib/sha1/make @ 6515:8df664ebe037
HTTP/2: send WINDOW_UPDATE instead of RST_STREAM with NO_ERROR.
After the 92464ebace8e change, it has been discovered that not all
clients follow the RFC and handle RST_STREAM with NO_ERROR properly.
Notably, Chrome currently interprets it as INTERNAL_ERROR and discards
the response.
As a workaround, instead of RST_STREAM the maximum stream window update
will be sent, which will let client to send up to 2 GB of a request body
data before getting stuck on flow control. All the received data will
be silently discarded.
See for details:
http://mailman.nginx.org/pipermail/nginx-devel/2016-April/008143.html
https://bugs.chromium.org/p/chromium/issues/detail?id=603182
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Thu, 14 Apr 2016 15:14:15 +0300 |
parents | 78f8ac479735 |
children |
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 SHA1_ASM=$SHA1_ASM" ngx_sha1="SHA1=\"$SHA1\"" ;; owc) ngx_makefile=makefile.owc ngx_opt="CPU_OPT=\"$CPU_OPT\"" ngx_sha1=`echo SHA1=\"$SHA1\" | sed -e "s/\//$ngx_regex_dirsep/g"` ;; bcc) ngx_makefile=makefile.bcc ngx_opt="-DCPU_OPT=\"$CPU_OPT\" -DSHA1_ASM=$SHA1_ASM" ngx_sha1=`echo \-DSHA1=\"$SHA1\" | sed -e "s/\//$ngx_regex_dirsep/g"` ;; esac done=NO case "$NGX_PLATFORM" in win32) cat << END >> $NGX_MAKEFILE `echo "$SHA1/sha1.lib: $NGX_MAKEFILE" | sed -e "s/\//$ngx_regex_dirsep/g"` \$(MAKE) -f auto/lib/sha1/$ngx_makefile $ngx_opt $ngx_sha1 END done=YES ;; SunOS:*:i86pc) if [ $SHA1_ASM = YES ]; then cat << END >> $NGX_MAKEFILE $SHA1/libsha.a: $NGX_MAKEFILE cd $SHA1 \\ && \$(MAKE) CFLAGS="$SHA1_OPT -DSOL -DSHA1_ASM -DL_ENDIAN" \\ CC="\$(CC)" CPP="\$(CPP)" \\ SHA_ASM_OBJ=asm/sx86-sol.o clean libsha.a END done=YES fi ;; # FreeBSD: i386 # Linux: i686 *:i386 | *:i686) if [ $SHA1_ASM = YES ]; then cat << END >> $NGX_MAKEFILE $SHA1/libsha.a: $NGX_MAKEFILE cd $SHA1 \\ && \$(MAKE) CFLAGS="$SHA1_OPT -DELF -DSHA1_ASM -DL_ENDIAN" \\ CC="\$(CC)" CPP="\$(CPP)" \\ SHA_ASM_OBJ=asm/sx86-elf.o clean libsha.a END done=YES fi ;; esac if [ $done = NO ]; then cat << END >> $NGX_MAKEFILE $SHA1/libsha.a: $NGX_MAKEFILE cd $SHA1 \\ && \$(MAKE) CFLAGS="$SHA1_OPT" \\ CC="\$(CC)" SHA_ASM_OBJ= clean libsha.a END fi