Mercurial > hg > nginx-quic
annotate src/core/ngx_rwlock.h @ 6512:b5734248d5e7
FastCGI: skip special bufs in buffered request body chain.
This prevents forming empty records out of such buffers. Particularly it fixes
double end-of-stream records with chunked transfer encoding, or when HTTP/2 is
used and the END_STREAM flag has been sent without data. In both cases there
is an empty buffer at the end of the request body chain with the "last_buf"
flag set.
The canonical libfcgi, as well as php implementation, tolerates such records,
while the HHVM parser is more strict and drops the connection (ticket #950).
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Mon, 11 Apr 2016 18:42:34 +0300 |
parents | 682d8222c6b1 |
children | d1816a2696de |
rev | line source |
---|---|
6101 | 1 |
2 /* | |
3 * Copyright (C) Ruslan Ermilov | |
4 * Copyright (C) Nginx, Inc. | |
5 */ | |
6 | |
7 | |
8 #ifndef _NGX_RWLOCK_H_INCLUDED_ | |
9 #define _NGX_RWLOCK_H_INCLUDED_ | |
10 | |
11 | |
12 #include <ngx_config.h> | |
13 #include <ngx_core.h> | |
14 | |
15 | |
16 void ngx_rwlock_wlock(ngx_atomic_t *lock); | |
17 void ngx_rwlock_rlock(ngx_atomic_t *lock); | |
18 void ngx_rwlock_unlock(ngx_atomic_t *lock); | |
19 | |
20 | |
21 #endif /* _NGX_RWLOCK_H_INCLUDED_ */ |