Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Version 1.4.0 | Bert JW Regeer | 2019-12-20 | 1 | -1/+1 |
| | | | | | | | Updating version to version 1.4.0 due to the many changes in this release. If anyone has explicitly pinned 1.3.x they will need to opt-in to receive the security fixes, which do come with big changes that may cahnge how Waitress handles HTTP requests. | ||||
* | Update CHANGES.txt and HISTORY.txt as appropriate | Bert JW Regeer | 2019-12-20 | 2 | -73/+151 |
| | |||||
* | Allow end of chunk parser to be resumeable | Bert JW Regeer | 2019-12-19 | 2 | -9/+44 |
| | |||||
* | Improve validation of Transfer-Encoding | Bert JW Regeer | 2019-12-19 | 3 | -1/+81 |
| | | | | | | | | | | | | | | | | Waitress only supports a single Transfer-Encoding and that is chunked. We will read the whole request into a temporary buffer and then remove the header and set the Content-Length. However HTTP desync/HTTP request smuggling attacks could potentially provide multiple Transfer-Encoding headers that would not get appropriately treated by waitress. Waitress now treats the header as potentially containing multiple values, and validates that the last encoding listed is "chunked". At this time Waitress does not support any other encodings, and all other requests will be rejected with a 501 Not Implemented error. | ||||
* | Upon receiving invalid Content-Length bail | Bert JW Regeer | 2019-12-19 | 2 | -3/+23 |
| | | | | | | | | Instead of attempting to continue processing the request, we instead raise a ParsingError and return a HTTP Bad Request to the client. This also catches the case where two Content-Length's are sent, and are folded together using HTTP header folding. | ||||
* | Disallow BWS in header field-names | Bert JW Regeer | 2019-12-19 | 2 | -0/+16 |
| | | | | | | | | | | Waitress used to treat: Foo : bar As a valid header, however https://tools.ietf.org/html/rfc7230#section-3.2 states that this is not valid. | ||||
* | Properly enforce max_request_header_size | Bert JW Regeer | 2019-12-19 | 1 | -17/+31 |
| | | | | | | Previously this would not be properly enforced if the request was passed to waitress in one go, and the request headers could be larger than the administrator had allowed. | ||||
* | Remove support for non CRLF line endings | Bert JW Regeer | 2019-12-19 | 8 | -303/+408 |
| | | | | | | | | | | | | | | | https://tools.ietf.org/html/rfc7230#section-3.5 says that servers MAY implement their parsers to use only the LF as a delimeter between lines, however if the frontend server does NOT do the same you can potentially allow a single HTTP request to be treated differently by the two servers. This issue can be used to cause HTTP request smuggling or HTTP desync which may lead to vulnerabilities. To increase robustness Waitress will no longer allow bare LF for HTTP messages/headers and chunked encoding and instead now enforces that the line endings at CRLF. | ||||
* | Make sure all errors have a code/reason | Bert JW Regeer | 2019-12-19 | 1 | -0/+4 |
| | | | | | Silences some warnings in my editor, and makes sure if it is subclassed in the future we don't blow up in code somewhere. | ||||
* | Upon processing errors, set Connection: close header | Bert JW Regeer | 2019-12-19 | 3 | -28/+26 |
| | | | | | | | | | | When we start sending out an exception that has happened we want to drop any further pipelined requests that may be waiting. The way we do this is by slamming the connection shut after we send the response to the received request that has errored. This avoids potential issues with attempting to parse the rest of the data that is in the TCP/IP connection that may contain invalid data. | ||||
* | Fix coverage reporting of subprocess in coverage 5.x | Bert JW Regeer | 2019-12-19 | 2 | -9/+8 |
| | |||||
* | Bring coverage back to 100% | Bert JW Regeer | 2019-12-19 | 1 | -3/+0 |
| | |||||
* | Concatenate lines black reformatted | Bert JW Regeer | 2019-12-19 | 1 | -11/+7 |
| | |||||
* | Blacken the entire code base | Bert JW Regeer | 2019-12-12 | 43 | -2781/+3245 |
| | |||||
* | Merge pull request #262 from Pylons/workflows | Bert JW Regeer | 2019-12-12 | 3 | -0/+113 |
|\ | | | | | Add GH actions | ||||
| * | Also run on PR'sworkflows | Bert JW Regeer | 2019-09-19 | 3 | -3/+3 |
| | | |||||
| * | Add macOS testing | Bert JW Regeer | 2019-09-19 | 1 | -0/+29 |
| | | |||||
| * | Setup GH actions | Bert JW Regeer | 2019-09-19 | 2 | -0/+84 |
| | | | | | | | | | | This sets up Github Actions to be used. Right now alongside Appveyor and Travis, but I am thinking this will eventually take over. | ||||
* | | Merge pull request #272 from JonathonReinhart/fix-usage-typos | Steve Piercy | 2019-11-29 | 1 | -4/+4 |
|\ \ | |/ |/| | Fix typos in command line usage text | ||||
| * | Fix typos in command line usage text | Jonathon Reinhart | 2019-11-29 | 1 | -4/+4 |
|/ | |||||
* | Prep for 1.3.1v1.3.1 | Bert JW Regeer | 2019-08-27 | 1 | -1/+1 |
| | |||||
* | Merge pull request #261 from Pylons/bugfix/uri_parsing | Bert JW Regeer | 2019-08-27 | 3 | -4/+62 |
|\ | | | | | Bugfix: uri parsing | ||||
| * | Add CHANGES.txt entry for bug | Bert JW Regeer | 2019-08-27 | 1 | -0/+14 |
| | | |||||
| * | Add comment why this code exists | Bert JW Regeer | 2019-08-27 | 1 | -0/+7 |
| | | |||||
| * | Allow requests with URI that starts with multiple slashes | Bert JW Regeer | 2019-08-27 | 1 | -4/+17 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The HTTP spec states that it is acceptable to send a request like: GET //whatever/testing HTTP/1.1 This should get properly conveyed to the WSGI application, but due to the way that urlsplit works in the standard library this did not happen correctly. With this fix we pass through the original path as requested by the client, and the WSGI application will be responsible for collapsing multiple empty path segments as necessary. Fixes #260 | ||||
| * | Add failing tests for #260 | Bert JW Regeer | 2019-08-27 | 1 | -0/+24 |
|/ | |||||
* | Merge pull request #259 from Pylons/proxy-header-middleware | Bert JW Regeer | 2019-07-24 | 13 | -1000/+1295 |
|\ | | | | | move proxy headers to a middleware and return 400 for malformed values | ||||
| * | restore the old per-language coverage filesproxy-header-middleware | Michael Merickel | 2019-07-24 | 3 | -2/+13 |
| | | |||||
| * | add proxy header tests | Michael Merickel | 2019-07-19 | 7 | -22/+105 |
| | | |||||
| * | support echoing more request info, not just body, in functional tests | Michael Merickel | 2019-07-19 | 2 | -27/+64 |
| | | |||||
| * | move tests into test_proxy_headers | Michael Merickel | 2019-07-18 | 4 | -612/+691 |
| | | |||||
| * | log the header value | Michael Merickel | 2019-07-14 | 3 | -57/+78 |
| | | |||||
| * | handle exceptions and tag them with the specific header | Michael Merickel | 2019-06-30 | 1 | -91/+117 |
| | | |||||
| * | move proxy headers to a middleware and return 400 for malformed values | Michael Merickel | 2019-06-29 | 4 | -354/+392 |
|/ | |||||
* | Prep v1.3.0v1.3.0 | Bert JW Regeer | 2019-04-22 | 2 | -3/+8 |
| | |||||
* | Merge pull request #252 from Pylons/crack-version | Bert JW Regeer | 2019-04-13 | 2 | -2/+5 |
|\ | | | | | avoid converting the version to a string value "None", empty instead | ||||
| * | avoid converting the version to a string value "None", empty insteadcrack-version | Michael Merickel | 2019-04-13 | 2 | -2/+5 |
|/ | |||||
* | Prep for 1.3.0b0v1.3.0b0 | Bert JW Regeer | 2019-04-11 | 3 | -123/+123 |
| | |||||
* | Merge pull request #250 from Pylons/trigger | Bert JW Regeer | 2019-04-11 | 1 | -7/+10 |
|\ | | | | | pull the trigger more often, increases throughput in some testing | ||||
| * | pull the trigger more often, increases throughput in some testingtrigger | Michael Merickel | 2019-04-10 | 1 | -7/+10 |
| | | |||||
* | | Merge pull request #251 from Pylons/resource-warnings | Bert JW Regeer | 2019-04-11 | 3 | -6/+65 |
|\ \ | | | | | | | fix resource warnings | ||||
| * | | fix resource warningsresource-warnings | Michael Merickel | 2019-04-10 | 3 | -6/+65 |
| |/ | |||||
* | | Merge pull request #249 from Pylons/iobase | Bert JW Regeer | 2019-04-11 | 4 | -1/+52 |
|\ \ | |/ |/| | support iobase subclasses | ||||
| * | add changelogiobase | Michael Merickel | 2019-04-10 | 1 | -0/+4 |
| | | |||||
| * | test for seekable method and use it | Michael Merickel | 2019-04-10 | 2 | -3/+7 |
| | | |||||
| * | demonstrate failing test with non-seekable filewrapper stream | Michael Merickel | 2019-04-10 | 2 | -1/+44 |
|/ | |||||
* | Merge pull request #242 from Pylons/outbuf-high-watermark | Bert JW Regeer | 2019-04-06 | 8 | -26/+165 |
|\ | | | | | outbuf_high_watermark | ||||
| * | fix comment | Michael Merickel | 2019-04-06 | 1 | -2/+2 |
| | | |||||
| * | adjust changelogoutbuf-high-watermark | Michael Merickel | 2019-04-05 | 1 | -7/+6 |
| | | |||||
| * | simplify rotation | Michael Merickel | 2019-04-05 | 2 | -20/+20 |
| | |