v6.5.4
Fix cheroot.ssl.pyopenssl under Python 3.
Remove custom license field from dist metadata.
Fully integrate trustme into all TLS tests. Also remove all hardcoded TLS certificates.
Remove traces of unittest and ddt usage.
Fix invalid input processing in cheroot._compat.extract_bytes().
Fix returning error explanation over plain HTTP for PyOpenSSL.
Add a fallback for os.lchmod() where it’s missing.
Avoid traceback for invalid client cert with builtin ssl adapter.
Avoid deprecation warning with OpenSSL.SSL.Connection.
Fix socket wrapper in PyOpenSSL adapter.
Improve tests coverage:
Client TLS certificate tests
cheroot._compat.extract_bytes()
Peercreds lookup
v6.5.3
Make SCRIPT_NAME optional per PEP 333.
v6.5.2
- Fix import of :py:mod:cheroot.ssl.pyopenssl by refactoring and separating
:py:mod:cheroot.makefile's stream wrappers.
- Add initial tests for SSL layer with use of :py:mod:trustme
v6.5.1:
Improve UNIX socket fs access mode in :py:meth:cheroot.server.HTTPServer.prepare on a file socket when starting to listen to it.
v6.5.0
Add support for validating client certificates.
v6.4.0:
Factor out parts of :py:meth:cheroot.server.HTTPServer.start into :py:meth:prepare() <cheroot.server.HTTPServer.prepare> and :py:meth:serve() <cheroot.server.HTTPServer.serve>
v6.3.1
- :cp-issue:1618: Ignore OpenSSL's 1.0+ Error 0 under Python 2 while
wrapping a socket.
v6.3.0
- :pr:87: Add cheroot command and runpy launcher to
launch a WSGI app from the command-line.
v6.2.4
- Fix missing resolve_peer_creds argument in
:py:class:cheroot.wsgi.Server being bypassed into
:py:class:cheroot.server.HTTPServer.
- :pr:85: Revert conditional dependencies. System packagers should
honor the dependencies as declared by cheroot, which are defined
intentionally.
v6.2.1:
:pr:83: Fix regression, caused by inverted check for Windows OS.
Add more URLs to distribution metadata
v6.2.0:
:pr:37: Implement PEERCRED lookup over UNIX-socket HTTP connection.
Discover connected process' PID/UID/GID
Respect server switches: peercreds_enabled and peercreds_resolve_enabled
get_peer_creds and resolve_peer_creds methods on connection
peer_pid, peer_uid, peer_gid, peer_user and peer_group properties on connection
X_REMOTE_PID, X_REMOTE_UID, X_REMOTE_GID, X_REMOTE_USER (REMOTE_USER) and X_REMOTE_GROUP WSGI environment variables when enabled and supported
Per-connection caching to reduce lookup cost
v6.1.2
- :issue:81: Fix regression introduced by :pr:80.
* Restore :py:attr:storing bound socket
<cheroot.server.HTTPServer.bind_addr> in Windows broken by use of
:py:obj:socket.AF_UNIX
v6.1.1
- :pr:80: Fix regression introduced by :commit:68a5769.
* Get back support for :py:obj:socket.AF_UNIX in stored bound address in
:py:attr:cheroot.server.HTTPServer.bind_addr
- Improve HTTP request line validation:
* Improve HTTP version parsing
- Fix HTTP CONNECT method processing:
* Respond with ``405 Method Not Allowed`` if ``proxy_mode is False``
* Validate that request-target is in authority-form
- Improve tests in ``test.test_core``
- Fix EPROTOTYPE @ Mac OS
v5.8.2
- Fix 39 regression. Add HTTP request line check:
absolute URI path must start with a
forward slash ("/").
- CI improvements:
* Add basic working Circle CI v2 config
- Fix URI encoding bug introduced in 39
* Improve cheroot.test.helper.Controller to properly match unicode
v5.8.0
- CI improvements:
* Switch to native PyPy support in Travis CI
* Take into account PEP 257 compliant modules
* Build wheel in Appveyor and store it as an artifact
- Improve urllib support in ``_compat`` module
- 38 via 39: Improve URI parsing:
* Make it compliant with RFC 7230, RFC 7231 and RFC 2616
* Fix setting of ``environ['QUERY_STRING']`` in WSGI
* Introduce ``proxy_mode`` and ``strict_mode`` argument in ``server.HTTPRequest``
* Fix decoding of unicode URIs in WSGI 1.0 gateway
v5.7.0
======
- CI improvements:
* Don't run tests during deploy stage
* Use VM based build job env only for pyenv envs
* Opt-in for beta trusty image @ Travis CI
* Be verbose when running tests (show test names)
* Show xfail/skip details during test run
- #34: Fix ``_handle_no_ssl`` error handler calls
- #21: Fix ``test_conn`` tests:
* Improve setup_server def in HTTP connection tests
* Fix HTTP streaming tests
* Fix HTTP/1.1 pipelining test under Python 3
* Fix ``test_readall_or_close`` test
* Fix ``test_No_Message_Body``
* Clarify ``test_598`` fail reason
- #36: Add GitHub templates for PR, issue && contributing
- #27: Default HTTP Server header to Cheroot version str
- Cleanup _compat functions from server module
v5.6.0
======
- Fix all PEP 257 related errors in all non-test modules.
``cheroot/test/*`` folder is only one left allowed to fail with this linter.
- #30: Optimize chunked body reader loop by returning empty data is the size is 0.
Ref: cherrypy/cherrypy#1602
- Reset buffer if the body size is unknown
Ref: cherrypy/cherrypy#1486
- Add missing size hint to SizeCheckWrapper
Ref: cherrypy/cherrypy#1131
v5.5.2
======
- #32: Ignore "unknown error" and "https proxy request" SSL errors.
Ref: sabnzbd/sabnzbd#820
Ref: sabnzbd/sabnzbd#860
v5.5.1
======
- Make Appveyor list separate tests in corresponding tab.
- #29: Configure Travis CI build stages.
Prioritize tests by stages.
Move deploy stage to be run very last after all other stages finish.
- #31: Ignore "Protocol wrong type for socket" (EPROTOTYPE) @ OSX for non-blocking sockets.
This was originally fixed for regular sockets in cherrypy/cherrypy#1392.
Ref: https://forums.sabnzbd.org/viewtopic.php?f=2&t=22728&p=112251
v5.5.0
======
- #17 via #25: Instead of a read_headers function, cheroot now
supplies a HeaderReader class to perform the same function.
Any HTTPRequest object may override the header_reader attribute
to customize the handling of incoming headers.
The server module also presents a provisional implementation of
a DropUnderscoreHeaderReader that will exclude any headers
containing an underscore. It remains an exercise for the
implementer to demonstrate how this functionality might be
employed in a server such as CherryPy.
- #26: Configured TravisCI to run tests under OS X.