Mercurial > hg > nginx
comparison src/http/ngx_http_request.c @ 7234:c693daca57f7
gRPC: special handling of the TE request header.
According to the gRPC protocol specification, the "TE" header is used
to detect incompatible proxies, and at least grpc-c server rejects
requests without "TE: trailers".
To preserve the logic, we have to pass "TE: trailers" to the backend if
and only if the original request contains "trailers" in the "TE" header.
Note that no other TE values are allowed in HTTP/2, so we have to remove
anything else.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 17 Mar 2018 23:04:25 +0300 |
parents | 33edea74bd58 |
children | 7f955d3b9a0d ea3f1f9af72c |
comparison
equal
deleted
inserted
replaced
7233:2713b2dbf5bb | 7234:c693daca57f7 |
---|---|
130 | 130 |
131 { ngx_string("Transfer-Encoding"), | 131 { ngx_string("Transfer-Encoding"), |
132 offsetof(ngx_http_headers_in_t, transfer_encoding), | 132 offsetof(ngx_http_headers_in_t, transfer_encoding), |
133 ngx_http_process_header_line }, | 133 ngx_http_process_header_line }, |
134 | 134 |
135 { ngx_string("TE"), | |
136 offsetof(ngx_http_headers_in_t, te), | |
137 ngx_http_process_header_line }, | |
138 | |
135 { ngx_string("Expect"), | 139 { ngx_string("Expect"), |
136 offsetof(ngx_http_headers_in_t, expect), | 140 offsetof(ngx_http_headers_in_t, expect), |
137 ngx_http_process_unique_header_line }, | 141 ngx_http_process_unique_header_line }, |
138 | 142 |
139 { ngx_string("Upgrade"), | 143 { ngx_string("Upgrade"), |