| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This commit enables running the unit tests on Travis for Python 2.6,
2.7, 3.3, and 3.4. Note that Travis does not support Python 2.4, so
we cannot test there.
|
|
|
|
|
| |
This commit updates the unit tests to work with the current code
and adds in tests for the auth and token plugin functionality.
|
|
|
|
|
|
|
|
| |
Previously, we just passed the values of '--*-plugin' and
'--*-source' directly to `LibProxyServer` and `WebSocketProxy`,
which handled turning that into an instance of the plugin class.
Now, that's done in main, and the classes receive an instance
directly.
|
|
|
|
|
| |
ReadOnlyTokenFile didn't initialize `self._targets` to `None`,
causing issues.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Auth plugins provide a generic interface for authenticating requests.
The plugin name is specified using the '--auth-plugin' option, and
may either be the name of a class from `websockify.auth_plugins`,
or a fully qualified python path to the auth plugin class (see below).
An optional plugin parameter can be specified using the '--auth-source'
option (a value of `None` will be used if no '--auth-source' option is
specified).
Auth plugins should inherit from `websockify.auth_plugins.BasePlugin`,
and should implement the `authenticate(headers, target_host, target_port)`
method. The value of the '--auth-source' option is available as
`self.source`.
One plugin is currently included: `ExpectOrigin`. The `ExpectOrigin`
plugin checks that the 'Origin' header is an expected value. The list
of acceptable origins is passed using the plugin source, as a
space-separated list.
|
|
|
|
|
|
|
|
|
| |
There was a bug in WebSocketServer that prevented the `file_only`
parameter from actually being set as an instance property, causing
directory listings to appear even with `file_only=True`. This
commit fixes that.
See-Also: https://bugs.launchpad.net/nova/+bug/1447675
|
|\
| |
| | |
Implement Ping and Pong heartbeat messages
|
| |
| |
| |
| |
| |
| | |
With this option we will ping the client with a heartbeat.
Helpful for connection through firewalls that may disable inactive
connections.
|
|/
|
|
|
| |
This allows the websockify server to respond to heart beat ping
messages sent by clients
|
|
|
|
|
|
|
|
| |
Previously, if no `target_cfg` flag was used, the `target_cfg` option
would not get removed from the opts dict, causing an error when it got
passed through to `WebSocketProxy`. Now we always remove it.
Fixes #168.
|
|\
| |
| | |
BUGFIX: Websocket frame corruption on big-endian #150
|
| |
| |
| |
| |
| |
| |
| | |
This patch fixes noVNC endianess problem on handshake.
It affects noVNC sessions on Big Endian platforms.
Fixes #150
|
|\ \
| |/
|/| |
Introduce Token Plugins
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Token plugins provide a generic interface for transforming a token
into a `(host, port)` tuple.
The plugin name is specified using the '--token-plugin' option,
and may either be the name of a class from `websockify.token_plugins`,
or a fully qualified python path to the token plugin class (see below).
An optional plugin parameter can be specified using the '--token-source'
option (a value of `None` will be used if no '--token-source' option is
passed).
Token plugins should inherit from `websockify.token_plugins.BasePlugin`,
and should implement the `lookup(token)` method. The value of the
'--token-source' option is available as `self.source`.
Several plugins are included by default. The `ReadOnlyTokenFile`
and `TokenFile` plugins implement functionality from '--target-config'
(with the former only reading the file(s) once, and the latter reading
them every time). The 'BaseTokenAPI' plugin fetches the value from
an API, returning the result of `process_result(response_object)`.
By default, `process_result` simply returns the text of the response,
but may be overriden. The `JSONTokenAPI` does just this, returning
the 'host' and 'port' values from the response JSON object.
The old '--target-config' option is now deprecated, and maps to the
`TokenFile` plugin under the hood.
Also-Authored-By: James Portman (@james-portman)
Closes #157
|
|\ \
| |/
|/| |
Add Python 3 trove classifiers.
|
|/
|
|
| |
This makes <http://py3readiness.org> display the status of this package correctly :).
|
|\
| |
| | |
Don't use implicit relative imports
|
|/
|
|
|
|
|
|
| |
Implicit relative imports don't work in Python 3. This converts
implicit relative imports into absolute imports
(e.g. `import websocket` becomes `from websockify import websocket`).
Fixes #154
|
|\
| |
| | |
Added 'websockify.js' to package.json files list
|
| |
| |
| | |
Added websockify.js to the files section, this fixes #90 and allows NPM to properly install
|
|\ \
| | |
| | | |
python3 compatibility fixes
|
|/ / |
|
| | |
|
|\ \
| |/
|/| |
Fix typo in reaping zombies message.
|
|/ |
|
| |
|
|
|
|
| |
can cause bugs.
|
|
|
|
|
|
|
| |
*** NOTE ***
This version of websockify will break existing code which sub-classes
`WebsocketProxy` -- see pull requests #110 and #111
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since we switched to using the `logging` module to log
in pull request #100, none of the messages on the 'INFO'
level were being shown from `tests/echo.py` and
`tests/load.py`, since the default log level is 'WARNING'.
Now, the log level is set to INFO in `tests/echo.py` and
`tests/load.py`, to match the log level in the main websockify
executable.
Fixes #109
|
| |
|
|\
| |
| | |
Refactor to use standard SocketServer RequestHandler design.
|
| |\
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Move around functions and methods, so that connection-related and
server-related stuff are close together.
This patch just moves things around - it does not change anything at
all. This can be verified with:
git diff | grep ^- | cut -c 2- | sort > removed
git diff | grep ^+ | cut -c 2- | sort > added
diff -u removed added
|
| |
| |
| |
| | |
upstream/master.
|
| |\
| |/
|/|
| |
| | |
Conflicts:
websockify/websocket.py
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
astrand/websockify:
Prepare for fixing https://github.com/kanaka/websockify/issues/71:
Move around functions and methods, so that connection-related and
server-related stuff are close together.
This patch just moves things around - it does not change anything at
all. This can be verified with:
git diff websocket.py | grep ^- | cut -c 2- | sort > removed
git diff websocket.py | grep ^+ | cut -c 2- | sort > added
diff -u removed added
|
| |\
| |/
|/| |
|
|\ \
| | |
| | | |
Rename self.client and new_client - prepare for #72 / #111
|
| | |
| | |
| | |
| | |
| | |
| | | |
name in the SocketServer/HTTPServer request handler hierarchy. Prepare
for merge pull request #72. This work has been picked out of
7b3dd8a6f5ef26dbfd6c34a91600ea1613aefaa2 .
|
|/ /
| |
| |
| |
| | |
request #72. The standard Python SocketServer/BaseRequestHandler
requires this name.
|
| |
| |
| |
| | |
in request handler class.
|
| |\
| |/
|/|
| |
| | |
* commit '34a1b68d79a13c03aa63b5c4194796341c9383fe':
Clarify ssl module build for old python versions.
|
| | |
|
| |\
| |/
|/|
| |
| | |
* commit 'a04edfe80f54b44df5a3579f71710560c6b7b4fc':
Added temp dir for unit test data and cleanup
|
|\ \
| | |
| | | |
Added temp dir for unit test data and cleanup
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Unit test data will now go to a temporary dir that will be deleted
once the test completes. The unit tests also setup a logger which
will persist so that it can be inspected once tests complete.
Also fixes a bug where instance var is missing from decode_hybi()
Co-authored-by: natsume.takashi@lab.ntt.co.jp
|
| |\
| |/
|/|
| |
| | |
* commit 'a47be21f9fa69ddf8d888ff9e3c75cdfc9e31c00':
Added unit tests for websocket and websocketproxy
|
|\ \
| | |
| | | |
Added unit tests for websocket and websocketproxy
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To run the unit tests just run tox from the top
level directory which will try to run unit tests
for most versions of python. Requires tox to be
installed. To run tox for a specifice env, run
tox -e<env> e.g. for python 2.7 run 'tox -epy27'.
Co-authored-by: natsume.takashi@lab.ntt.co.jp
|