Mercurial > hg > nginx-quic
view src/os/win32/ngx_time.h @ 7983:39501ce97e29
gRPC: generate error when response size is wrong.
As long as the "Content-Length" header is given, we now make sure
it exactly matches the size of the response. If it doesn't,
the response is considered malformed and must not be forwarded
(https://tools.ietf.org/html/rfc7540#section-8.1.2.6). While it
is not really possible to "not forward" the response which is already
being forwarded, we generate an error instead, which is the closest
equivalent.
Previous behaviour was to pass everything to the client, but this
seems to be suboptimal and causes issues (ticket #1695). Also this
directly contradicts HTTP/2 specification requirements.
Note that the new behaviour for the gRPC proxy is more strict than that
applied in other variants of proxying. This is intentional, as HTTP/2
specification requires us to do so, while in other types of proxying
malformed responses from backends are well known and historically
tolerated.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 06 Jul 2020 18:36:25 +0300 |
parents | d620f497c50f |
children |
line wrap: on
line source
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGX_TIME_H_INCLUDED_ #define _NGX_TIME_H_INCLUDED_ #include <ngx_config.h> #include <ngx_core.h> typedef ngx_rbtree_key_t ngx_msec_t; typedef ngx_rbtree_key_int_t ngx_msec_int_t; typedef SYSTEMTIME ngx_tm_t; typedef FILETIME ngx_mtime_t; #define ngx_tm_sec wSecond #define ngx_tm_min wMinute #define ngx_tm_hour wHour #define ngx_tm_mday wDay #define ngx_tm_mon wMonth #define ngx_tm_year wYear #define ngx_tm_wday wDayOfWeek #define ngx_tm_sec_t u_short #define ngx_tm_min_t u_short #define ngx_tm_hour_t u_short #define ngx_tm_mday_t u_short #define ngx_tm_mon_t u_short #define ngx_tm_year_t u_short #define ngx_tm_wday_t u_short #define ngx_msleep Sleep #define NGX_HAVE_GETTIMEZONE 1 #define ngx_timezone_update() ngx_int_t ngx_gettimezone(void); void ngx_libc_localtime(time_t s, struct tm *tm); void ngx_libc_gmtime(time_t s, struct tm *tm); void ngx_gettimeofday(struct timeval *tp); #endif /* _NGX_TIME_H_INCLUDED_ */