Mercurial > hg > nginx
annotate auto/lib/libatomic/conf @ 9065:2ee6f9729739 quic
QUIC: set stream error flag on reset.
Now, when RESET_STREAM is sent or received, or when streams are closed,
stream connection error flag is set. Previously, only stream state was
changed, which resulted in setting the error flag only after calling
recv()/send()/send_chain(). However, there are cases when none of these
functions is called, but it's still important to know if the stream is being
closed. For example, when an HTTP/3 request stream is blocked on insert count,
receiving RESET_STREAM should trigger stream closure, which was not the case.
The change also fixes ngx_http_upstream_check_broken_connection() and
ngx_http_test_reading() with QUIC streams.
author | Roman Arutyunyan <arut@nginx.com> |
---|---|
date | Tue, 10 Jan 2023 17:42:40 +0400 |
parents | d620f497c50f |
children |
rev | line source |
---|---|
3363 | 1 |
2 # Copyright (C) Igor Sysoev | |
4412 | 3 # Copyright (C) Nginx, Inc. |
3363 | 4 |
5 | |
6 if [ $NGX_LIBATOMIC != YES ]; then | |
7 | |
8 have=NGX_HAVE_LIBATOMIC . auto/have | |
9 CORE_INCS="$CORE_INCS $NGX_LIBATOMIC/src" | |
10 LINK_DEPS="$LINK_DEPS $NGX_LIBATOMIC/src/libatomic_ops.a" | |
11 CORE_LIBS="$CORE_LIBS $NGX_LIBATOMIC/src/libatomic_ops.a" | |
12 | |
13 else | |
14 | |
15 ngx_feature="atomic_ops library" | |
16 ngx_feature_name=NGX_HAVE_LIBATOMIC | |
3366 | 17 ngx_feature_run=yes |
3378
5d17022a1e88
fix libatomic usage on arm, cris, hppa, m68k, and sparc platforms
Igor Sysoev <igor@sysoev.ru>
parents:
3366
diff
changeset
|
18 ngx_feature_incs="#define AO_REQUIRE_CAS |
5d17022a1e88
fix libatomic usage on arm, cris, hppa, m68k, and sparc platforms
Igor Sysoev <igor@sysoev.ru>
parents:
3366
diff
changeset
|
19 #include <atomic_ops.h>" |
3363 | 20 ngx_feature_path= |
21 ngx_feature_libs="-latomic_ops" | |
3366 | 22 ngx_feature_test="long n = 0; |
23 if (!AO_compare_and_swap(&n, 0, 1)) | |
24 return 1; | |
25 if (AO_fetch_and_add(&n, 1) != 1) | |
26 return 1; | |
27 if (n != 2) | |
28 return 1; | |
3363 | 29 AO_nop();" |
30 . auto/feature | |
31 | |
32 if [ $ngx_found = yes ]; then | |
33 CORE_LIBS="$CORE_LIBS $ngx_feature_libs" | |
34 else | |
35 | |
36 cat << END | |
37 | |
38 $0: error: libatomic_ops library was not found. | |
39 | |
40 END | |
41 exit 1 | |
42 fi | |
43 fi |