This repository has been archived by the owner on Jun 9, 2020. It is now read-only.
hiroshige-g
released this
24 Aug 06:44
·
129 commits
to master
since this release
Changes from 0.7.8
(Typo fixes, comment addition, unittest changes and refactoring are omitted)
Bug fixes
- Wrap IOErrors and socket.errors as ConnectionTerminatedExceptions
- Fixed crash in _TLSSocket by adding missing methods
- Convert pyOpenSSL specific exceptions into ones SocketServer knows
- Send an internal endpoint error when a BadOperationException is thrown
- Sec-WebSocket-Location header now includes the query part
New features
- Added a SWIG based C++ fast masking library
- Added extra_headers attribute to the request object to allow users to append their own headers
- Added two-pass incompatibility check on extensions
TLS related
- TLS client cert validation can now be set to optional
- Added TLS module selection option
Deprecation
- Moved deflate-stream processor to a separate file to prepare for removing it
Log and debugging
- All log messages in headerparserhandler.py are now prefixed with "mod_pywebsocket: "
- Refined log messages in standalone.py
- Log the TLS module in use
- Fixed Stream's log to be suitable also for use in client
- Log the TLS/SSL cipher in use
- Dispatcher now prints stack trace when AbortedByUserException is raised
Multiplexing experiment
- Updated to conform to draft-ietf-hybi-websocket-multiplexing-07
- Stop worker threads blocked for send quota shortage when the writer thread is done
- Log exceptions thrown in set_read_state and on_writer_done method
- Fixed invalid method call in worker termination code
- Fixed mux parser to handle fragmented control frames inserted between fragmented non-control frames
- Frame/message filters of logical channels are now applied to logical channel messages
- Frame/message filters of the physical connection are now applied to multiplexed messages
- Send a close message when the writer thread exits
- Support extensions for logical channels
- Support bad fragmentation drop code
- Follow extra permessage cost rule
echo_client.py
- Removed Hixie 75 protocol support
- Added pyOpenSSL support
- Added TLS/SSL version option
- Added TLS module selection option
- Fixed bugs of TLS socket closing and sendall method
- Log the TLS/SSL cipher in use
- Added an option to turn off TLS compression
console.html
- When received an ArrayBuffer or Blob, print the size of them
- Added UI to test subprotocol
- Changed layout and style
New HTML tools
- Added benchmark.html - a simple benchmark tool works with benchmark_helper_wsh.py
- Added arraybuffer_benchmark.html - a simple ArrayBuffer read/write performance benchmark tool
- Added eventsource.html - a simple EventSource example works with eventsource.cgi
New handler examples
- abort_wsh.py and abort_handshake_wsh.py
- internal_error_wsh.py
- hsts_wsh.py
- echo_noext_wsh.py