Mercurial > hg > nginx-quic
annotate auto/os/win32 @ 7235:c2a0a838c40f
gRPC: special handling of "trailer only" responses.
The gRPC protocol makes a distinction between HEADERS frame with
the END_STREAM flag set, and a HEADERS frame followed by an empty
DATA frame with the END_STREAM flag. The latter is not permitted,
and results in errors not being propagated through nginx. Instead,
gRPC clients complain that "server closed the stream without sending
trailers" (seen in grpc-go) or "13: Received RST_STREAM with error
code 2" (seen in grpc-c).
To fix this, nginx now returns HEADERS with the END_STREAM flag if
the response length is known to be 0, and we are not expecting
any trailer headers to be added. And the response length is
explicitly set to 0 in the gRPC proxy if we see initial HEADERS frame
with the END_STREAM flag set.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 17 Mar 2018 23:04:26 +0300 |
parents | b7b7f3a0cc28 |
children | f3ff79ae31d9 |
rev | line source |
---|---|
455 | 1 |
2 # Copyright (C) Igor Sysoev | |
4412 | 3 # Copyright (C) Nginx, Inc. |
455 | 4 |
5 | |
509 | 6 have=NGX_WIN32 . auto/have_headers |
455 | 7 |
8 CORE_INCS="$WIN32_INCS" | |
9 CORE_DEPS="$WIN32_DEPS" | |
10 CORE_SRCS="$WIN32_SRCS $IOCP_SRCS" | |
11 OS_CONFIG="$WIN32_CONFIG" | |
461 | 12 NGX_ICONS="$NGX_WIN32_ICONS" |
2813
c00763aa5e1b
divide select module into two modules: Unix and Win32 ones
Igor Sysoev <igor@sysoev.ru>
parents:
2731
diff
changeset
|
13 SELECT_SRCS=$WIN32_SELECT_SRCS |
455 | 14 |
6383 | 15 ngx_pic_opt= |
7031
b7b7f3a0cc28
Configure: use .exe for binaries for all win32 compilers.
Orgad Shaneh <orgads@gmail.com>
parents:
6724
diff
changeset
|
16 ngx_binext=".exe" |
6383 | 17 |
5360
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
18 case "$NGX_CC_NAME" in |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
19 |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
20 gcc) |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
21 CORE_LIBS="$CORE_LIBS -ladvapi32 -lws2_32" |
6383 | 22 MAIN_LINK="$MAIN_LINK -Wl,--export-all-symbols" |
23 MAIN_LINK="$MAIN_LINK -Wl,--out-implib=$NGX_OBJS/libnginx.a" | |
24 MODULE_LINK="-shared -L $NGX_OBJS -lnginx" | |
5360
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
25 ;; |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
26 |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
27 *) |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
28 CORE_LIBS="$CORE_LIBS advapi32.lib ws2_32.lib" |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
29 ;; |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
30 |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
31 esac |
3d2d3e1cf427
Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
32 |
455 | 33 EVENT_MODULES="$EVENT_MODULES $IOCP_MODULE" |
34 EVENT_FOUND=YES | |
35 | |
36 if [ $EVENT_SELECT = NO ]; then | |
37 CORE_SRCS="$CORE_SRCS $SELECT_SRCS" | |
38 EVENT_MODULES="$EVENT_MODULES $SELECT_MODULE" | |
39 fi | |
40 | |
6724
a6d116645c51
Configure: removed the --with-ipv6 option.
Maxim Dounin <mdounin@mdounin.ru>
parents:
6383
diff
changeset
|
41 have=NGX_HAVE_INET6 . auto/have |
2814 | 42 |
469 | 43 have=NGX_HAVE_IOCP . auto/have |