diff options
author | Glenn Strauss <gstrauss@gluelogic.com> | 2020-07-28 07:32:29 -0400 |
---|---|---|
committer | Glenn Strauss <gstrauss@gluelogic.com> | 2020-08-02 07:47:42 -0400 |
commit | 7420526ddb107d527cb9598f20cfbdc4f981840d (patch) | |
tree | e56fd73b4f4dbe183cbfbe6e33438da4fc9fe27c /src/request.h | |
parent | dbd438cca037ca651fc444d8e89df2c48532a1e0 (diff) | |
download | lighttpd-git-7420526ddb107d527cb9598f20cfbdc4f981840d.tar.gz |
[core] decode Transfer-Encoding: chunked from gw
decode Transfer-Encoding: chunked from gw (gateway backends)
Transfer-Encoding: chunked is a hop-by-hop header.
Handling chunked encoding remove a hurdle for mod_proxy to send HTTP/1.1
requests to backends and be able to handle HTTP/1.1 responses.
Other backends ought not to send Transfer-Encoding: chunked, but in
practice, some implementations do.
Diffstat (limited to 'src/request.h')
-rw-r--r-- | src/request.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/request.h b/src/request.h index 996a6c5a..aa5f1df1 100644 --- a/src/request.h +++ b/src/request.h @@ -95,6 +95,12 @@ typedef struct { buffer etag; } physical; +typedef struct { + off_t gw_chunked; + buffer b; + int done; +} response_dechunk; + /* the order of the items should be the same as they are processed * read before write as we use this later e.g. <= CON_STATE_REQUEST_END */ typedef enum { @@ -159,6 +165,7 @@ struct request_st { char resp_body_finished; char resp_body_started; char resp_send_chunked; + char resp_decode_chunked; char loops_per_request; /* catch endless loops in a single request */ char keep_alive; /* only request.c can enable it, all other just disable */ @@ -167,6 +174,7 @@ struct request_st { struct chunkqueue *write_queue; /* HTTP response queue [ file, mem ] */ struct chunkqueue *read_queue; /* HTTP request queue [ mem ] */ buffer *tmp_buf; /* shared; same as srv->tmp_buf */ + response_dechunk *gw_dechunk; struct timespec start_hp; time_t start_ts; |