annotate auto/lib/zlib/makefile.msvc @ 8044:457afc332c67

Stream: don't flush empty buffers created for read errors. When we generate the last_buf buffer for an UDP upstream recv error, it does not contain any data from the wire. ngx_stream_write_filter attempts to forward it anyways, which is incorrect (e.g., UDP upstream ECONNREFUSED will be translated to an empty packet). This happens because we mark the buffer as both 'flush' and 'last_buf', and ngx_stream_write_filter has special handling for flush with certain types of connections (see d127837c714f, 32b0ba4855a6). The flags are meant to be mutually exclusive, so the fix is to ensure that flush and last_buf are not set at the same time. Reproduction: stream { upstream unreachable { server 127.0.0.1:8880; } server { listen 127.0.0.1:8998 udp; proxy_pass unreachable; } } 1 0.000000000 127.0.0.1 → 127.0.0.1 UDP 47 45588 → 8998 Len=5 2 0.000166300 127.0.0.1 → 127.0.0.1 UDP 47 51149 → 8880 Len=5 3 0.000172600 127.0.0.1 → 127.0.0.1 ICMP 75 Destination unreachable (Port unreachable) 4 0.000202400 127.0.0.1 → 127.0.0.1 UDP 42 8998 → 45588 Len=0 Fixes d127837c714f.
author Aleksei Bavshin <a.bavshin@f5.com>
date Mon, 23 May 2022 11:29:44 -0700
parents 9d458803bbe0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 297
diff changeset
1
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 297
diff changeset
2 # Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 2838
diff changeset
3 # Copyright (C) Nginx, Inc.
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 297
diff changeset
4
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
5
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 286
diff changeset
6 CFLAGS = -nologo -O2 -Ob1 -Oi -Gs $(LIBC) $(CPU_OPT)
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 zlib.lib:
2838
ecdc41bf2047 backout r2833: CURDIR was set to Unix style path
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
9 cd $(ZLIB)
ecdc41bf2047 backout r2833: CURDIR was set to Unix style path
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
10
4839
9d458803bbe0 Configure: provide inflate() when building zlib on win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
11 cl -c $(CFLAGS) adler32.c crc32.c deflate.c \
9d458803bbe0 Configure: provide inflate() when building zlib on win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
12 trees.c zutil.c compress.c \
9d458803bbe0 Configure: provide inflate() when building zlib on win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
13 inflate.c inffast.c inftrees.c
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
14
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
15 link -lib -out:zlib.lib adler32.obj crc32.obj deflate.obj \
4839
9d458803bbe0 Configure: provide inflate() when building zlib on win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
16 trees.obj zutil.obj compress.obj \
9d458803bbe0 Configure: provide inflate() when building zlib on win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4412
diff changeset
17 inflate.obj inffast.obj inftrees.obj