Changes
=======

0.12.0
------

* The simplejson module is no longer needed for redis token support
* redis tokens can now be either JSON or plain text
* websockify can now listen to a Unix socket for incoming connections

0.11.0
------

* Command line now supports disabling directory listings
* Basic Dockerfile included

0.10.0
------

* Python 3.4 or newer is now required
* Empty message frames are now supported
* Tokens can now specify a Unix domain socket file to connect to
* Time limits on JWT tokens are now respected
* Whitespace is better tolerated in token files
* Lots of minor fixes...

0.9.0
-----

* Base64 support removed and binary mode is now required
* Low level WebSocket protocol handling now has its own class
* Authentication now optionally required for web server
* Server hostname can be used as the token
* JWT/JWS/JWE can be used for the token
* redis can be used for the token
* Can now log to syslog
* Improved latency by disabling Nagle for proxied connection
* Added client certificate authentication
* Support for password protected certificate key file
* TLS ciphers and options are now configurable
* Can be invoked via inetd
* Lots of minor fixes...

0.8.0
-----

* Make websockify properly terminate children on SIGTERM (#226)
* Remove logging in signal handlers (this can cause Python to hang under certain conditions) (#219)
* Make it easier to log to a file (#205)
* Add support for IPv6 addresses in tokens in the TokenFile token plugins (#197)
* Improve auth plugin framework to enable better support for HTTP auth (#194, #201)
* Fix bug in JSONTokenAPI token plugin (#192)
* Fix a missing variable in the exception handler (#178)

0.7.0
-----

* Python 3 support fixes (#140, #155, #159)
* Generic token-parsing plugins support (#162)
* Generic authentication plugins support (#172)
* Fixed frame corruption on big-endian systems (#161)
* Support heartbeats (via PING) and automatic responses to PONG (#169)
* Automatically reject unmasked client frames by default (strict mode) (#174)
* Automatically restart interrupted select calls (#175)
* Make 'run' respect environment settings (including virtualenv) (#176)

0.6.1 - May 11, 2015
--------------------

* **PATCH RELEASE**: Fixes a bug causing file_only to not be passed properly

0.6.0 - Feb 18, 2014
--------------------

* **NOTE** : 0.6.0 will break existing code that sub-classes WebsocketProxy
* Refactor to use standard SocketServer RequestHandler design
* Fix zombie process bug on certain systems when using multiprocessing
* Add better unit tests
* Log information via python `logging` module

0.5.1 - Jun 27, 2013
--------------------

 * use upstream einaros/ws (>=0.4.27) with websockify.js
 * file_only and no_parent security options for WSRequestHandler
 * Update build of web-socket-js (c0855c6cae)
 * add include/web-socket-js-project submodule to gimite/web-socket-js
   for DSFG compliance.
 * drop Hixie protocol support

0.4.1 - Mar 12, 2013
--------------------

 * ***NOTE*** : 0.5.0 will drop Hixie protocol support
 * add include/ directory and remove some dev files from source
   distribution.

0.4.0 - Mar 12, 2013
--------------------

 * ***NOTE*** : 0.5.0 will drop Hixie protocol support
 * use Buffer base64 support in Node.js implementation

0.3.0 - Jan 15, 2013
--------------------

 * refactor into modules: websocket, websocketproxy
 * switch to web-socket-js that uses IETF 6455
 * change to MPL 2.0 license for include/*.js
 * fix session recording

0.2.1 - Oct 15, 2012
--------------------

 * re-released with updated version number

0.2.0 - Sep 17, 2012
--------------------

 * Binary data support in websock.js
 * Target config file/dir and multiple targets with token selector
 * IPv6 fixes
 * SSL target support
 * Proxy to/from unix socket


0.1.0 - May 11, 2012
--------------------

 * Initial versioned release.

