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