Commit 540fff9
authored
fix(http1): discard content-length header when received before transfer-encoding (#4124)
While hyper currently recognizes the correct message payload semantics when both
content-length and transfer-encoding headers are sent, there are cases where it
doesn't always strip the canceled content-length header.
This fix now correctly removes the header if it was seen before transfer-encoding.
It also now sets the connection to close at the end of the message, as
recommended in the new RFC 9112.
(To be clear, the semantics have always been correct. This reduces the possibility
of forwarding confusing headers to a remote that doesn't know how to act correctly.)
Closes #41231 parent ccc1e85 commit 540fff9
1 file changed
Lines changed: 53 additions & 34 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
234 | 234 | | |
235 | 235 | | |
236 | 236 | | |
| 237 | + | |
237 | 238 | | |
238 | 239 | | |
239 | 240 | | |
| |||
272 | 273 | | |
273 | 274 | | |
274 | 275 | | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
275 | 279 | | |
276 | 280 | | |
277 | 281 | | |
| |||
280 | 284 | | |
281 | 285 | | |
282 | 286 | | |
| 287 | + | |
283 | 288 | | |
284 | 289 | | |
285 | 290 | | |
| |||
340 | 345 | | |
341 | 346 | | |
342 | 347 | | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
343 | 352 | | |
344 | 353 | | |
345 | 354 | | |
| |||
2048 | 2057 | | |
2049 | 2058 | | |
2050 | 2059 | | |
2051 | | - | |
2052 | | - | |
2053 | | - | |
2054 | | - | |
2055 | | - | |
2056 | | - | |
2057 | | - | |
2058 | | - | |
2059 | | - | |
2060 | | - | |
2061 | | - | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
2062 | 2067 | | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
2063 | 2071 | | |
2064 | | - | |
2065 | | - | |
2066 | | - | |
2067 | | - | |
2068 | | - | |
2069 | | - | |
2070 | | - | |
2071 | | - | |
2072 | | - | |
2073 | | - | |
2074 | | - | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
| 2075 | + | |
| 2076 | + | |
| 2077 | + | |
| 2078 | + | |
2075 | 2079 | | |
| 2080 | + | |
| 2081 | + | |
| 2082 | + | |
2076 | 2083 | | |
2077 | | - | |
2078 | | - | |
2079 | | - | |
2080 | | - | |
2081 | | - | |
2082 | | - | |
2083 | | - | |
2084 | | - | |
2085 | | - | |
2086 | | - | |
2087 | | - | |
2088 | | - | |
| 2084 | + | |
| 2085 | + | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
| 2104 | + | |
2089 | 2105 | | |
| 2106 | + | |
| 2107 | + | |
| 2108 | + | |
2090 | 2109 | | |
2091 | 2110 | | |
2092 | 2111 | | |
| |||
0 commit comments