Mercurial > hg > nginx
view auto/lib/pcre/make @ 9154:f6b6f3dd7ca0
QUIC: ignore path validation socket error (ticket #2532).
Previously, a socket error on a path being validated resulted in validation
error and subsequent QUIC connection closure. Now the error is ignored and
path validation proceeds as usual, with several retries and a timeout.
When validating the old path after an apparent migration, that path may already
be unavailable and sendmsg() may return an error, which should not result in
QUIC connection close.
When validating the new path, it's possible that the new client address is
spoofed (See RFC 9000, 9.3.2. On-Path Address Spoofing). This address may
as well be unavailable and should not trigger QUIC connection closure.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Thu, 31 Aug 2023 10:54:07 +0400 |
parents | 0b5f12d5c531 |
children |
line wrap: on
line source
# Copyright (C) Igor Sysoev # Copyright (C) Nginx, Inc. if [ $PCRE_LIBRARY = PCRE2 ]; then # PCRE2 if [ $NGX_CC_NAME = msvc ]; then # With PCRE2, it is not possible to compile all sources. # Since list of source files changes between versions, we # test files which might not be present. ngx_pcre_srcs="pcre2_auto_possess.c \ pcre2_chartables.c \ pcre2_compile.c \ pcre2_config.c \ pcre2_context.c \ pcre2_dfa_match.c \ pcre2_error.c \ pcre2_jit_compile.c \ pcre2_maketables.c \ pcre2_match.c \ pcre2_match_data.c \ pcre2_newline.c \ pcre2_ord2utf.c \ pcre2_pattern_info.c \ pcre2_string_utils.c \ pcre2_study.c \ pcre2_substitute.c \ pcre2_substring.c \ pcre2_tables.c \ pcre2_ucd.c \ pcre2_valid_utf.c \ pcre2_xclass.c" ngx_pcre_test="pcre2_convert.c \ pcre2_extuni.c \ pcre2_find_bracket.c \ pcre2_script_run.c \ pcre2_serialize.c" for ngx_src in $ngx_pcre_test do if [ -f $PCRE/src/$ngx_src ]; then ngx_pcre_srcs="$ngx_pcre_srcs $ngx_src" fi done ngx_pcre_objs=`echo $ngx_pcre_srcs \ | sed -e "s#\([^ ]*\.\)c#\1$ngx_objext#g"` ngx_pcre_srcs=`echo $ngx_pcre_srcs \ | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"` ngx_pcre_objs=`echo $ngx_pcre_objs \ | sed -e "s/ *\([^ ][^ ]*\)/$ngx_regex_cont\1/g"` cat << END >> $NGX_MAKEFILE PCRE_CFLAGS = -O2 -Ob1 -Oi -Gs $LIBC $CPU_OPT PCRE_FLAGS = -DHAVE_CONFIG_H -DPCRE2_STATIC -DPCRE2_CODE_UNIT_WIDTH=8 \\ -DHAVE_MEMMOVE PCRE_SRCS = $ngx_pcre_srcs PCRE_OBJS = $ngx_pcre_objs $PCRE/src/pcre2.h: cd $PCRE/src \\ && copy /y config.h.generic config.h \\ && copy /y pcre2.h.generic pcre2.h \\ && copy /y pcre2_chartables.c.dist pcre2_chartables.c $PCRE/src/pcre2-8.lib: $PCRE/src/pcre2.h $NGX_MAKEFILE cd $PCRE/src \\ && cl -nologo -c \$(PCRE_CFLAGS) -I . \$(PCRE_FLAGS) \$(PCRE_SRCS) \\ && link -lib -out:pcre2-8.lib -verbose:lib \$(PCRE_OBJS) END else cat << END >> $NGX_MAKEFILE $PCRE/src/pcre2.h: $PCRE/Makefile $PCRE/Makefile: $NGX_MAKEFILE cd $PCRE \\ && if [ -f Makefile ]; then \$(MAKE) distclean; fi \\ && CC="\$(CC)" CFLAGS="$PCRE_OPT" \\ ./configure --disable-shared $PCRE_CONF_OPT $PCRE/.libs/libpcre2-8.a: $PCRE/Makefile cd $PCRE \\ && \$(MAKE) libpcre2-8.la END fi else # PCRE case "$NGX_CC_NAME" in msvc) ngx_makefile=makefile.msvc ngx_opt="CPU_OPT=\"$CPU_OPT\" LIBC=$LIBC" ngx_pcre="PCRE=\"$PCRE\"" ;; owc) ngx_makefile=makefile.owc ngx_opt="CPU_OPT=\"$CPU_OPT\"" ngx_pcre=`echo PCRE=\"$PCRE\" | sed -e "s/\//$ngx_regex_dirsep/g"` ;; bcc) ngx_makefile=makefile.bcc ngx_opt="-DCPU_OPT=\"$CPU_OPT\"" ngx_pcre=`echo \-DPCRE=\"$PCRE\" \ | sed -e "s/\//$ngx_regex_dirsep/g"` ;; *) ngx_makefile= ;; esac if [ -n "$ngx_makefile" ]; then cat << END >> $NGX_MAKEFILE `echo "$PCRE/pcre.lib: $PCRE/pcre.h $NGX_MAKEFILE" \ | sed -e "s/\//$ngx_regex_dirsep/g"` \$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre $ngx_opt `echo "$PCRE/pcre.h:" | sed -e "s/\//$ngx_regex_dirsep/g"` \$(MAKE) -f auto/lib/pcre/$ngx_makefile $ngx_pcre pcre.h END else cat << END >> $NGX_MAKEFILE $PCRE/pcre.h: $PCRE/Makefile $PCRE/Makefile: $NGX_MAKEFILE cd $PCRE \\ && if [ -f Makefile ]; then \$(MAKE) distclean; fi \\ && CC="\$(CC)" CFLAGS="$PCRE_OPT" \\ ./configure --disable-shared $PCRE_CONF_OPT $PCRE/.libs/libpcre.a: $PCRE/Makefile cd $PCRE \\ && \$(MAKE) libpcre.la END fi fi