Skip to content
This repository has been archived by the owner on Jun 9, 2020. It is now read-only.

pywebsocket-0.7.9

Latest
Compare
Choose a tag to compare
@hiroshige-g 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