Mercurial > hg > nginx
view auto/cc/gcc @ 9153:8f7e6d8c061e
QUIC: use last client dcid to receive initial packets.
Previously, original dcid was used to receive initial client packets in case
server initial response was lost. However, last dcid should be used instead.
These two are the same unless retry is used. In case of retry, client resends
initial packet with a new dcid, that is different from the original dcid. If
server response is lost, the client resends this packet again with the same
dcid. This is shown in RFC 9000, 7.3. Authenticating Connection IDs, Figure 8.
The issue manifested itself with creating multiple server sessions in response
to each post-retry client initial packet, if server response is lost.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Wed, 30 Aug 2023 11:09:21 +0400 |
parents | 9eefb38f0005 |
children |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. # gcc 2.7.2.3, 2.8.1, 2.95.4, egcs-1.1.2 # 3.0.4, 3.1.1, 3.2.3, 3.3.2, 3.3.3, 3.3.4, 3.4.0, 3.4.2 # 4.0.0, 4.0.1, 4.1.0 NGX_GCC_VER=`$CC -v 2>&1 | grep 'gcc version' 2>&1 \ | sed -e 's/^.* version \(.*\)/\1/'` echo " + gcc version: $NGX_GCC_VER" have=NGX_COMPILER value="\"gcc $NGX_GCC_VER\"" . auto/define # Solaris 7's /usr/ccs/bin/as does not support "-pipe" CC_TEST_FLAGS="-pipe" ngx_feature="gcc -pipe switch" ngx_feature_name= ngx_feature_run=no ngx_feature_incs= ngx_feature_path= ngx_feature_libs= ngx_feature_test= . auto/feature CC_TEST_FLAGS= if [ $ngx_found = yes ]; then PIPE="-pipe" fi case "$NGX_MACHINE" in sun4u | sun4v | sparc | sparc64 ) # "-mcpu=v9" enables the "casa" assembler instruction CFLAGS="$CFLAGS -mcpu=v9" ;; esac # optimizations #NGX_GCC_OPT="-O2" #NGX_GCC_OPT="-Os" NGX_GCC_OPT="-O" #CFLAGS="$CFLAGS -fomit-frame-pointer" case $CPU in pentium) # optimize for Pentium and Athlon CPU_OPT="-march=pentium" NGX_CPU_CACHE_LINE=32 ;; pentiumpro | pentium3) # optimize for Pentium Pro, Pentium II and Pentium III CPU_OPT="-march=pentiumpro" NGX_CPU_CACHE_LINE=32 ;; pentium4) # optimize for Pentium 4, gcc 3.x CPU_OPT="-march=pentium4" NGX_CPU_CACHE_LINE=128 ;; athlon) # optimize for Athlon, gcc 3.x CPU_OPT="-march=athlon" NGX_CPU_CACHE_LINE=64 ;; opteron) # optimize for Opteron, gcc 3.x CPU_OPT="-march=opteron" NGX_CPU_CACHE_LINE=64 ;; sparc32) # build 32-bit UltraSparc binary CPU_OPT="-m32" CORE_LINK="$CORE_LINK -m32" NGX_CPU_CACHE_LINE=64 ;; sparc64) # build 64-bit UltraSparc binary CPU_OPT="-m64" CORE_LINK="$CORE_LINK -m64" NGX_CPU_CACHE_LINE=64 ;; ppc64) # build 64-bit PowerPC binary CPU_OPT="-m64" CPU_OPT="$CPU_OPT -falign-functions=32 -falign-labels=32" CPU_OPT="$CPU_OPT -falign-loops=32 -falign-jumps=32" CORE_LINK="$CORE_LINK -m64" NGX_CPU_CACHE_LINE=128 ;; esac CC_AUX_FLAGS="$CC_AUX_FLAGS $CPU_OPT" case "$NGX_GCC_VER" in 2.7*) # batch build CPU_OPT= ;; esac CFLAGS="$CFLAGS $PIPE $CPU_OPT" if [ ".$PCRE_OPT" = "." ]; then PCRE_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" else PCRE_OPT="$PCRE_OPT $PIPE" fi if [ ".$ZLIB_OPT" = "." ]; then ZLIB_OPT="-O2 -fomit-frame-pointer $PIPE $CPU_OPT" else ZLIB_OPT="$ZLIB_OPT $PIPE" fi # warnings # -W requires at least -O CFLAGS="$CFLAGS ${NGX_GCC_OPT:--O} -W" CFLAGS="$CFLAGS -Wall -Wpointer-arith" #CFLAGS="$CFLAGS -Wconversion" #CFLAGS="$CFLAGS -Winline" #CFLAGS="$CFLAGS -Wmissing-prototypes" case "$NGX_GCC_VER" in 2.*) # we have a lot of the unused function arguments CFLAGS="$CFLAGS -Wno-unused" ;; *) # we have a lot of the unused function arguments CFLAGS="$CFLAGS -Wno-unused-parameter" # 4.2.1 shows the warning in wrong places #CFLAGS="$CFLAGS -Wunreachable-code" # deprecated system OpenSSL library on OS X if [ "$NGX_SYSTEM" = "Darwin" ]; then CFLAGS="$CFLAGS -Wno-deprecated-declarations" fi ;; esac # stop on warning CFLAGS="$CFLAGS -Werror" # debug CFLAGS="$CFLAGS -g" # DragonFly's gcc3 generates DWARF #CFLAGS="$CFLAGS -g -gstabs" if [ ".$CPP" = "." ]; then CPP="$CC -E" fi