head 1.7; access; symbols pkgsrc-2023Q4:1.6.0.30 pkgsrc-2023Q4-base:1.6 pkgsrc-2023Q3:1.6.0.28 pkgsrc-2023Q3-base:1.6 pkgsrc-2023Q2:1.6.0.26 pkgsrc-2023Q2-base:1.6 pkgsrc-2023Q1:1.6.0.24 pkgsrc-2023Q1-base:1.6 pkgsrc-2022Q4:1.6.0.22 pkgsrc-2022Q4-base:1.6 pkgsrc-2022Q3:1.6.0.20 pkgsrc-2022Q3-base:1.6 pkgsrc-2022Q2:1.6.0.18 pkgsrc-2022Q2-base:1.6 pkgsrc-2022Q1:1.6.0.16 pkgsrc-2022Q1-base:1.6 pkgsrc-2021Q4:1.6.0.14 pkgsrc-2021Q4-base:1.6 pkgsrc-2021Q3:1.6.0.12 pkgsrc-2021Q3-base:1.6 pkgsrc-2021Q2:1.6.0.10 pkgsrc-2021Q2-base:1.6 pkgsrc-2021Q1:1.6.0.8 pkgsrc-2021Q1-base:1.6 pkgsrc-2020Q4:1.6.0.6 pkgsrc-2020Q4-base:1.6 pkgsrc-2020Q3:1.6.0.4 pkgsrc-2020Q3-base:1.6 pkgsrc-2020Q2:1.6.0.2 pkgsrc-2020Q2-base:1.6 pkgsrc-2020Q1:1.5.0.4 pkgsrc-2020Q1-base:1.5 pkgsrc-2019Q4:1.5.0.6 pkgsrc-2019Q4-base:1.5 pkgsrc-2019Q3:1.5.0.2 pkgsrc-2019Q3-base:1.5 pkgsrc-2019Q2:1.4.0.4 pkgsrc-2019Q2-base:1.4 pkgsrc-2019Q1:1.4.0.2 pkgsrc-2019Q1-base:1.4 pkgsrc-2018Q4:1.3.0.10 pkgsrc-2018Q4-base:1.3 pkgsrc-2018Q3:1.3.0.8 pkgsrc-2018Q3-base:1.3 pkgsrc-2018Q2:1.3.0.6 pkgsrc-2018Q2-base:1.3 pkgsrc-2018Q1:1.3.0.4 pkgsrc-2018Q1-base:1.3 pkgsrc-2017Q4:1.3.0.2 pkgsrc-2017Q4-base:1.3 pkgsrc-2017Q3:1.2.0.4 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.1.0.16 pkgsrc-2017Q2-base:1.1 pkgsrc-2017Q1:1.1.0.14 pkgsrc-2017Q1-base:1.1 pkgsrc-2016Q4:1.1.0.12 pkgsrc-2016Q4-base:1.1 pkgsrc-2016Q3:1.1.0.10 pkgsrc-2016Q3-base:1.1 pkgsrc-2016Q2:1.1.0.8 pkgsrc-2016Q2-base:1.1 pkgsrc-2016Q1:1.1.0.6 pkgsrc-2016Q1-base:1.1 pkgsrc-2015Q4:1.1.0.4 pkgsrc-2015Q4-base:1.1 pkgsrc-2015Q3:1.1.0.2 pkgsrc-2015Q3-base:1.1; locks; strict; comment @# @; 1.7 date 2024.01.26.13.48.21; author adam; state Exp; branches; next 1.6; commitid jmwPqORjwEkkOXVE; 1.6 date 2020.05.13.14.43.28; author adam; state Exp; branches; next 1.5; commitid k9gjhJ9Pc5DsB58C; 1.5 date 2019.09.13.09.53.30; author adam; state Exp; branches; next 1.4; commitid W4fpfECYf2pkOPCB; 1.4 date 2019.01.20.13.20.02; author adam; state Exp; branches; next 1.3; commitid gePvfyDrNqK8xw8B; 1.3 date 2017.10.16.12.07.24; author adam; state Exp; branches; next 1.2; commitid U8KAzPK0GJXgXgbA; 1.2 date 2017.07.09.21.24.24; author adam; state Exp; branches; next 1.1; commitid gDWgzCUo0FWLdBYz; 1.1 date 2015.07.15.18.23.55; author wiz; state Exp; branches; next ; commitid 6kLU24VVBKkNwpty; desc @@ 1.7 log @py-waitress: updated to 2.1.2 2.1.2 ----- Bugfix ~~~~~~ - When expose_tracebacks is enabled waitress would fail to properly encode unicode thereby causing another error during error handling. See https://github.com/Pylons/waitress/pull/378 - Header length checking had a calculation that was done incorrectly when the data was received across multple socket reads. This calculation has been corrected, and no longer will Waitress send back a 413 Request Entity Too Large. See https://github.com/Pylons/waitress/pull/376 Security Bugfix ~~~~~~~~~~~~~~~ - in 2.1.0 a new feature was introduced that allowed the WSGI thread to start sending data to the socket. However this introduced a race condition whereby a socket may be closed in the sending thread while the main thread is about to call select() therey causing the entire application to be taken down. Waitress will no longer close the socket in the WSGI thread, instead waking up the main thread to cleanup. See https://github.com/Pylons/waitress/pull/377 2.1.1 ----- Security Bugfix ~~~~~~~~~~~~~~~ - Waitress now validates that chunked encoding extensions are valid, and don't contain invalid characters that are not allowed. They are still skipped/not processed, but if they contain invalid data we no longer continue in and return a 400 Bad Request. This stops potential HTTP desync/HTTP request smuggling. Thanks to Zhang Zeyu for reporting this issue. See https://github.com/Pylons/waitress/security/advisories/GHSA-4f7p-27jc-3c36 - Waitress now validates that the chunk length is only valid hex digits when parsing chunked encoding, and values such as ``0x01`` and ``+01`` are no longer supported. This stops potential HTTP desync/HTTP request smuggling. Thanks to Zhang Zeyu for reporting this issue. See https://github.com/Pylons/waitress/security/advisories/GHSA-4f7p-27jc-3c36 - Waitress now validates that the Content-Length sent by a remote contains only digits in accordance with RFC7230 and will return a 400 Bad Request when the Content-Length header contains invalid data, such as ``+10`` which would previously get parsed as ``10`` and accepted. This stops potential HTTP desync/HTTP request smuggling Thanks to Zhang Zeyu for reporting this issue. See https://github.com/Pylons/waitress/security/advisories/GHSA-4f7p-27jc-3c36 2.1.0 ----- Python Version Support ~~~~~~~~~~~~~~~~~~~~~~ - Python 3.6 is no longer supported by Waitress - Python 3.10 is fully supported by Waitress Bugfix ~~~~~~ - ``wsgi.file_wrapper`` now sets the ``seekable``, ``seek``, and ``tell`` attributes from the underlying file if the underlying file is seekable. This allows WSGI middleware to implement things like range requests for example See https://github.com/Pylons/waitress/issues/359 and https://github.com/Pylons/waitress/pull/363 - In Python 3 ``OSError`` is no longer subscriptable, this caused failures on Windows attempting to loop to find an socket that would work for use in the trigger. See https://github.com/Pylons/waitress/pull/361 - Fixed an issue whereby ``BytesIO`` objects were not properly closed, and thereby would not get cleaned up until garbage collection would get around to it. This led to potential for random memory spikes/memory issues, see https://github.com/Pylons/waitress/pull/358 and https://github.com/Pylons/waitress/issues/357 . With thanks to Florian Schulze for testing/vaidating this fix! Features ~~~~~~~~ - When the WSGI app starts sending data to the output buffer, we now attempt to send data directly to the socket. This avoids needing to wake up the main thread to start sending data. Allowing faster transmission of the first byte. See https://github.com/Pylons/waitress/pull/364 With thanks to Michael Merickel for being a great rubber ducky! - Add REQUEST_URI to the WSGI environment. REQUEST_URI is similar to ``request_uri`` in nginx. It is a string that contains the request path before separating the query string and decoding ``%``-escaped characters. @ text @@@comment $NetBSD: PLIST,v 1.6 2020/05/13 14:43:28 adam Exp $ bin/waitress-serve-${PYVERSSUFFIX} ${PYSITELIB}/${WHEEL_INFODIR}/LICENSE.txt ${PYSITELIB}/${WHEEL_INFODIR}/METADATA ${PYSITELIB}/${WHEEL_INFODIR}/RECORD ${PYSITELIB}/${WHEEL_INFODIR}/WHEEL ${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt ${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt ${PYSITELIB}/waitress/__init__.py ${PYSITELIB}/waitress/__init__.pyc ${PYSITELIB}/waitress/__init__.pyo ${PYSITELIB}/waitress/__main__.py ${PYSITELIB}/waitress/__main__.pyc ${PYSITELIB}/waitress/__main__.pyo ${PYSITELIB}/waitress/adjustments.py ${PYSITELIB}/waitress/adjustments.pyc ${PYSITELIB}/waitress/adjustments.pyo ${PYSITELIB}/waitress/buffers.py ${PYSITELIB}/waitress/buffers.pyc ${PYSITELIB}/waitress/buffers.pyo ${PYSITELIB}/waitress/channel.py ${PYSITELIB}/waitress/channel.pyc ${PYSITELIB}/waitress/channel.pyo ${PYSITELIB}/waitress/compat.py ${PYSITELIB}/waitress/compat.pyc ${PYSITELIB}/waitress/compat.pyo ${PYSITELIB}/waitress/parser.py ${PYSITELIB}/waitress/parser.pyc ${PYSITELIB}/waitress/parser.pyo ${PYSITELIB}/waitress/proxy_headers.py ${PYSITELIB}/waitress/proxy_headers.pyc ${PYSITELIB}/waitress/proxy_headers.pyo ${PYSITELIB}/waitress/receiver.py ${PYSITELIB}/waitress/receiver.pyc ${PYSITELIB}/waitress/receiver.pyo ${PYSITELIB}/waitress/rfc7230.py ${PYSITELIB}/waitress/rfc7230.pyc ${PYSITELIB}/waitress/rfc7230.pyo ${PYSITELIB}/waitress/runner.py ${PYSITELIB}/waitress/runner.pyc ${PYSITELIB}/waitress/runner.pyo ${PYSITELIB}/waitress/server.py ${PYSITELIB}/waitress/server.pyc ${PYSITELIB}/waitress/server.pyo ${PYSITELIB}/waitress/task.py ${PYSITELIB}/waitress/task.pyc ${PYSITELIB}/waitress/task.pyo ${PYSITELIB}/waitress/trigger.py ${PYSITELIB}/waitress/trigger.pyc ${PYSITELIB}/waitress/trigger.pyo ${PYSITELIB}/waitress/utilities.py ${PYSITELIB}/waitress/utilities.pyc ${PYSITELIB}/waitress/utilities.pyo ${PYSITELIB}/waitress/wasyncore.py ${PYSITELIB}/waitress/wasyncore.pyc ${PYSITELIB}/waitress/wasyncore.pyo @ 1.6 log @py-waitress: updated to 1.4.3 1.4.3 (2020-02-02) ------------------ Security Fixes ~~~~~~~~~~~~~~ - In Waitress version 1.4.2 a new regular expression was added to validate the headers that Waitress receives to make sure that it matches RFC7230. Unfortunately the regular expression was written in a way that with invalid input it leads to catastrophic backtracking which allows for a Denial of Service and CPU usage going to a 100%. This was reported by Fil Zembowicz to the Pylons Project. Please see https://github.com/Pylons/waitress/security/advisories/GHSA-73m2-3pwg-5fgc for more information. 1.4.2 (2020-01-02) ------------------ Security Fixes ~~~~~~~~~~~~~~ - This is a follow-up to the fix introduced in 1.4.1 to tighten up the way Waitress strips whitespace from header values. This makes sure Waitress won't accidentally treat non-printable characters as whitespace and lead to a potental HTTP request smuggling/splitting security issue. Thanks to ZeddYu Lu for the extra test cases. Please see the security advisory for more information: https://github.com/Pylons/waitress/security/advisories/GHSA-m5ff-3wj3-8ph4 CVE-ID: CVE-2019-16789 Bugfixes ~~~~~~~~ - Updated the regex used to validate header-field content to match the errata that was published for RFC7230. See: https://www.rfc-editor.org/errata_search.php?rfc=7230&eid=4189 1.4.1 (2019-12-24) ------------------ Security Fixes ~~~~~~~~~~~~~~ - Waitress did not properly validate that the HTTP headers it received were properly formed, thereby potentially allowing a front-end server to treat a request different from Waitress. This could lead to HTTP request smuggling/splitting. Please see the security advisory for more information: https://github.com/Pylons/waitress/security/advisories/GHSA-m5ff-3wj3-8ph4 CVE-ID: CVE-2019-16789 1.4.0 (2019-12-20) ------------------ Bugfixes ~~~~~~~~ - Waitress used to slam the door shut on HTTP pipelined requests without setting the ``Connection: close`` header as appropriate in the response. This is of course not very friendly. Waitress now explicitly sets the header when responding with an internally generated error such as 400 Bad Request or 500 Internal Server Error to notify the remote client that it will be closing the connection after the response is sent. - Waitress no longer allows any spaces to exist between the header field-name and the colon. While waitress did not strip the space and thereby was not vulnerable to any potential header field-name confusion, it should have sent back a 400 Bad Request. See https://github.com/Pylons/waitress/issues/273 Security Fixes ~~~~~~~~~~~~~~ - Waitress implemented a "MAY" part of the RFC7230 (https://tools.ietf.org/html/rfc7230#section-3.5) which states: Although the line terminator for the start-line and header fields is the sequence CRLF, a recipient MAY recognize a single LF as a line terminator and ignore any preceding CR. Unfortunately if a front-end server does not parse header fields with an LF the same way as it does those with a CRLF it can lead to the front-end and the back-end server parsing the same HTTP message in two different ways. This can lead to a potential for HTTP request smuggling/splitting whereby Waitress may see two requests while the front-end server only sees a single HTTP message. For more information I can highly recommend the blog post by ZeddYu Lu https://blog.zeddyu.info/2019/12/08/HTTP-Smuggling-en/ Please see the security advisory for more information: https://github.com/Pylons/waitress/security/advisories/GHSA-pg36-wpm5-g57p CVE-ID: CVE-2019-16785 - Waitress used to treat LF the same as CRLF in ``Transfer-Encoding: chunked`` requests, while the maintainer doesn't believe this could lead to a security issue, this is no longer supported and all chunks are now validated to be properly framed with CRLF as required by RFC7230. - Waitress now validates that the ``Transfer-Encoding`` header contains only transfer codes that it is able to decode. At the moment that includes the only valid header value being ``chunked``. That means that if the following header is sent: ``Transfer-Encoding: gzip, chunked`` Waitress will send back a 501 Not Implemented with an error message stating as such, as while Waitress supports ``chunked`` encoding it does not support ``gzip`` and it is unable to pass that to the underlying WSGI environment correctly. Waitress DOES NOT implement support for ``Transfer-Encoding: identity`` eventhough ``identity`` was valid in RFC2616, it was removed in RFC7230. Please update your clients to remove the ``Transfer-Encoding`` header if the only transfer coding is ``identity`` or update your client to use ``Transfer-Encoding: chunked`` instead of ``Transfer-Encoding: identity, chunked``. Please see the security advisory for more information: https://github.com/Pylons/waitress/security/advisories/GHSA-g2xc-35jw-c63p CVE-ID: CVE-2019-16786 - While validating the ``Transfer-Encoding`` header, Waitress now properly handles line-folded ``Transfer-Encoding`` headers or those that contain multiple comma seperated values. This closes a potential issue where a front-end server may treat the request as being a chunked request (and thus ignoring the Content-Length) and Waitress using the Content-Length as it was looking for the single value ``chunked`` and did not support comma seperated values. - Waitress used to explicitly set the Content-Length header to 0 if it was unable to parse it as an integer (for example if the Content-Length header was sent twice (and thus folded together), or was invalid) thereby allowing for a potential request to be split and treated as two requests by HTTP pipelining support in Waitress. If Waitress is now unable to parse the Content-Length header, a 400 Bad Request is sent back to the client. Please see the security advisory for more information: https://github.com/Pylons/waitress/security/advisories/GHSA-4ppp-gpcr-7qf6 @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.5 2019/09/13 09:53:30 adam Exp $ d3 6 a8 7 ${PYSITELIB}/${EGG_INFODIR}/PKG-INFO ${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt ${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt ${PYSITELIB}/${EGG_INFODIR}/entry_points.txt ${PYSITELIB}/${EGG_INFODIR}/not-zip-safe ${PYSITELIB}/${EGG_INFODIR}/requires.txt ${PYSITELIB}/${EGG_INFODIR}/top_level.txt a47 85 ${PYSITELIB}/waitress/tests/__init__.py ${PYSITELIB}/waitress/tests/__init__.pyc ${PYSITELIB}/waitress/tests/__init__.pyo ${PYSITELIB}/waitress/tests/fixtureapps/__init__.py ${PYSITELIB}/waitress/tests/fixtureapps/__init__.pyc ${PYSITELIB}/waitress/tests/fixtureapps/__init__.pyo ${PYSITELIB}/waitress/tests/fixtureapps/badcl.py ${PYSITELIB}/waitress/tests/fixtureapps/badcl.pyc ${PYSITELIB}/waitress/tests/fixtureapps/badcl.pyo ${PYSITELIB}/waitress/tests/fixtureapps/echo.py ${PYSITELIB}/waitress/tests/fixtureapps/echo.pyc ${PYSITELIB}/waitress/tests/fixtureapps/echo.pyo ${PYSITELIB}/waitress/tests/fixtureapps/error.py ${PYSITELIB}/waitress/tests/fixtureapps/error.pyc ${PYSITELIB}/waitress/tests/fixtureapps/error.pyo ${PYSITELIB}/waitress/tests/fixtureapps/filewrapper.py ${PYSITELIB}/waitress/tests/fixtureapps/filewrapper.pyc ${PYSITELIB}/waitress/tests/fixtureapps/filewrapper.pyo ${PYSITELIB}/waitress/tests/fixtureapps/getline.py ${PYSITELIB}/waitress/tests/fixtureapps/getline.pyc ${PYSITELIB}/waitress/tests/fixtureapps/getline.pyo ${PYSITELIB}/waitress/tests/fixtureapps/groundhog1.jpg ${PYSITELIB}/waitress/tests/fixtureapps/nocl.py ${PYSITELIB}/waitress/tests/fixtureapps/nocl.pyc ${PYSITELIB}/waitress/tests/fixtureapps/nocl.pyo ${PYSITELIB}/waitress/tests/fixtureapps/runner.py ${PYSITELIB}/waitress/tests/fixtureapps/runner.pyc ${PYSITELIB}/waitress/tests/fixtureapps/runner.pyo ${PYSITELIB}/waitress/tests/fixtureapps/sleepy.py ${PYSITELIB}/waitress/tests/fixtureapps/sleepy.pyc ${PYSITELIB}/waitress/tests/fixtureapps/sleepy.pyo ${PYSITELIB}/waitress/tests/fixtureapps/toolarge.py ${PYSITELIB}/waitress/tests/fixtureapps/toolarge.pyc ${PYSITELIB}/waitress/tests/fixtureapps/toolarge.pyo ${PYSITELIB}/waitress/tests/fixtureapps/writecb.py ${PYSITELIB}/waitress/tests/fixtureapps/writecb.pyc ${PYSITELIB}/waitress/tests/fixtureapps/writecb.pyo ${PYSITELIB}/waitress/tests/test_adjustments.py ${PYSITELIB}/waitress/tests/test_adjustments.pyc ${PYSITELIB}/waitress/tests/test_adjustments.pyo ${PYSITELIB}/waitress/tests/test_buffers.py ${PYSITELIB}/waitress/tests/test_buffers.pyc ${PYSITELIB}/waitress/tests/test_buffers.pyo ${PYSITELIB}/waitress/tests/test_channel.py ${PYSITELIB}/waitress/tests/test_channel.pyc ${PYSITELIB}/waitress/tests/test_channel.pyo ${PYSITELIB}/waitress/tests/test_compat.py ${PYSITELIB}/waitress/tests/test_compat.pyc ${PYSITELIB}/waitress/tests/test_compat.pyo ${PYSITELIB}/waitress/tests/test_functional.py ${PYSITELIB}/waitress/tests/test_functional.pyc ${PYSITELIB}/waitress/tests/test_functional.pyo ${PYSITELIB}/waitress/tests/test_init.py ${PYSITELIB}/waitress/tests/test_init.pyc ${PYSITELIB}/waitress/tests/test_init.pyo ${PYSITELIB}/waitress/tests/test_parser.py ${PYSITELIB}/waitress/tests/test_parser.pyc ${PYSITELIB}/waitress/tests/test_parser.pyo ${PYSITELIB}/waitress/tests/test_proxy_headers.py ${PYSITELIB}/waitress/tests/test_proxy_headers.pyc ${PYSITELIB}/waitress/tests/test_proxy_headers.pyo ${PYSITELIB}/waitress/tests/test_receiver.py ${PYSITELIB}/waitress/tests/test_receiver.pyc ${PYSITELIB}/waitress/tests/test_receiver.pyo ${PYSITELIB}/waitress/tests/test_regression.py ${PYSITELIB}/waitress/tests/test_regression.pyc ${PYSITELIB}/waitress/tests/test_regression.pyo ${PYSITELIB}/waitress/tests/test_runner.py ${PYSITELIB}/waitress/tests/test_runner.pyc ${PYSITELIB}/waitress/tests/test_runner.pyo ${PYSITELIB}/waitress/tests/test_server.py ${PYSITELIB}/waitress/tests/test_server.pyc ${PYSITELIB}/waitress/tests/test_server.pyo ${PYSITELIB}/waitress/tests/test_task.py ${PYSITELIB}/waitress/tests/test_task.pyc ${PYSITELIB}/waitress/tests/test_task.pyo ${PYSITELIB}/waitress/tests/test_trigger.py ${PYSITELIB}/waitress/tests/test_trigger.pyc ${PYSITELIB}/waitress/tests/test_trigger.pyo ${PYSITELIB}/waitress/tests/test_utilities.py ${PYSITELIB}/waitress/tests/test_utilities.pyc ${PYSITELIB}/waitress/tests/test_utilities.pyo ${PYSITELIB}/waitress/tests/test_wasyncore.py ${PYSITELIB}/waitress/tests/test_wasyncore.pyc ${PYSITELIB}/waitress/tests/test_wasyncore.pyo @ 1.5 log @py-waitress: updated to 1.3.1 1.3.1: Bugfixes - Waitress won't accidentally throw away part of the path if it starts with a double slash (GET //testing/whatever HTTP/1.0). WSGI applications will now receive a PATH_INFO in the environment that contains //testing/whatever as required. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.4 2019/01/20 13:20:02 adam Exp $ d37 3 @ 1.4 log @py-waitress: updated to 1.2.0 1.2.0: No changes since the last beta release. Enjoy Waitress! 1.2.0b3: Bugfixes - Modified clear_untrusted_proxy_headers to be usable without a trusted_proxy. - Modified trusted_proxy_count to error when used without a trusted_proxy. 1.2.0b2: Bugfixes - Fixed logic to no longer warn on writes where the output is required to have a body but there may not be any data to be written. Solves issue posted on the Pylons Project mailing list with 1.2.0b1. 1.2.0b1: Happy New Year! Features - Setting the trusted_proxy setting to '*' (wildcard) will allow all upstreams to be considered trusted proxies, thereby allowing services behind Cloudflare/ELBs to function correctly whereby there may not be a singular IP address that requests are received from. Using this setting is potentially dangerous if your server is also available from anywhere on the internet, and further protections should be used to lock down access to Waitress. - Waitress has increased its support of the X-Forwarded-* headers and includes Forwarded (RFC7239) support. This may be used to allow proxy servers to influence the WSGI environment. This also provides a new security feature when using Waitress behind a proxy in that it is possible to remove untrusted proxy headers thereby making sure that downstream WSGI applications don't accidentally use those proxy headers to make security decisions. The documentation has more information, see the following new arguments: - trusted_proxy_count - trusted_proxy_headers - clear_untrusted_proxy_headers - log_untrusted_proxy_headers (useful for debugging) Be aware that the defaults for these are currently backwards compatible with older versions of Waitress, this will change in a future release of waitress. If you expect to need this behaviour please explicitly set these variables in your configuration, or pin this version of waitress. Documentation: https://docs.pylonsproject.org/projects/waitress/en/latest/reverse-proxy.html - Waitress can now accept a list of sockets that are already pre-bound rather than creating its own to allow for socket activation. Support for init systems/other systems that create said activated sockets is not included. - Server header can be omitted by specifying ident=None or ident=''. Bugfixes - Waitress will no longer send Transfer-Encoding or Content-Length for 1xx, 204, or 304 responses, and will completely ignore any message body sent by the WSGI application, making sure to follow the HTTP standard. Compatibility - Waitress has now "vendored" asyncore into itself as waitress.wasyncore. This is to cope with the eventuality that asyncore will be removed from the Python standard library in 3.8 or so. Documentation - Bring in documentation of paste.translogger from Pyramid. Reorganize and clean up documentation. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.3 2017/10/16 12:07:24 adam Exp $ d31 3 d104 3 @ 1.3 log @py-waitress: update to 1.1.0 1.1.0: Features * Waitress now has a __main__ and thus may be called with python -mwaitress Bugfixes * Waitress no longer allows lowercase HTTP verbs. This change was made to fall in line with most HTTP servers. * When receiving non-ascii bytes in the request URL, waitress will no longer abruptly close the connection, instead returning a 400 Bad Request. @ text @d1 2 a2 2 @@comment $NetBSD: PLIST,v 1.2 2017/07/09 21:24:24 adam Exp $ bin/waitress-serve${PYVERSSUFFIX} d122 3 d131 3 @ 1.2 log @1.0.2: Features - Python 3.6 is now officially supported in Waitress Bugfixes - Add a work-around for libc issue on Linux not following the documented standards. If getnameinfo() fails because of DNS not being available it should return the IP address instead of the reverse DNS entry, however instead getnameinfo() raises. We catch this, and ask getnameinfo() for the same information again, explicitly asking for IP address instead of reverse DNS hostname. @ text @d1 1 a1 1 @@comment $NetBSD: PLIST,v 1.1 2015/07/15 18:23:55 wiz Exp $ d13 3 @ 1.1 log @Import py-waitress-0.8.9 as www/py-waitress. Waitress is meant to be a production-quality pure-Python WSGI server with very acceptable performance. It has no dependencies except ones which live in the Python standard library. It supports HTTP/1.0 and HTTP/1.1. @ text @d1 2 a2 2 @@comment $NetBSD$ bin/waitress-serve @