Sheng
9cfd5b799a
Drop support for Python 3.8 3.9
2025-07-27 18:46:27 +08:00
Kyle Larose
dfea8a1624
handle invalid characeters in encoding
...
When establishing a connection to an SSH server, WebSSH tries to guess
at its encoding using a command sent prior to opening the terminal.
Unfortunately, sometimes this can return data which does not form proper
input for the `encode` function used by `is_valid_encoding` to test
whether the encoding is known.
In particular, we ran in to a case where the server was returning a
string which had a \0 in it when converted to ascii. That raised a
`ValueError` (as opposed to `LookupError`), which was uncaught.
Handle the `ValueError` case as well, treating it as an unknown encoding
so that we fall back on the default.
2023-03-30 10:52:53 -04:00
Sheng
5ffb1da69b
Drop support for Python version below 3.8
2023-02-27 22:13:24 +08:00
Sheng
bb2fba30f3
Removed LGPL
2023-01-17 13:23:41 +08:00
Sheng
50fc9908eb
Added test_worker_closed
2022-11-21 16:48:49 +08:00
Sheng
9238c01c35
Updated test_failed_weak_ref
2022-11-21 16:39:13 +08:00
Kyle Larose
f0e2ddb821
do not process message for closed workers
...
WsockHandler stores a weak reference to the ssh backend worker. The
worker closes itself if the backend connection closes (e.g. the user
exists the ssh session). That happens in parallel to the websocket
handler processing messages, so it is possible for a message to arrive
when the worker no longer has any strong references, leading to an
exception being thrown.
Handle this case by treating the None worker the same way we do invalid
messages: by simply returning.
2022-11-18 08:55:03 -05:00
Sheng
d54f5b547a
Use options.delay instead of DELAY
2020-10-07 20:29:13 +08:00
Sheng
83f739ca35
Added test for check_encoding_setting
2020-02-13 10:15:29 +08:00
Sheng
8901eb0580
Added class Font
2020-01-23 19:15:39 +08:00
Sheng
dcbd4a575a
Added fonts directory
2020-01-23 17:25:51 +08:00
Sheng
b805605278
Eased custom font configuration
2020-01-23 16:50:14 +08:00
Sheng
ccb40d2bed
Support openssh new format key
2019-12-11 09:32:42 +08:00
Sheng
d5d654407f
Refactoring
2019-10-09 11:46:47 +08:00
Sheng
fc30ead69e
Refactoring
2019-10-09 11:40:07 +08:00
Sheng
049baad909
Try to detect the encoding set by the user
2019-10-06 15:18:23 +08:00
Sheng
afcf8b52cc
Validate the result of locale charmap
2019-10-05 13:18:53 +08:00
Sheng
7f6db649bf
Support link scope ipv6 address
2019-09-19 10:55:34 +08:00
khuxkm fbexl
b2261367e8
Fix wrong passphrase test
2019-09-06 14:19:24 -04:00
khuxkm fbexl
850dd39f26
Fix test for passphrase
2019-09-06 13:54:24 -04:00
Sheng
0775c0c3ae
Refactored handler.py
2019-07-08 15:37:32 +08:00
Sheng
d197133c95
Support 2fa
2019-07-07 14:52:43 +08:00
Sheng
bec5b605fb
Updated tests
2019-07-05 13:15:18 +08:00
Sheng
ec545ec463
Refactored PrivateKey
2019-07-04 21:53:39 +08:00
Sheng
2b8b978ca2
Added PrivateKey class
2019-06-27 12:52:19 +08:00
Sheng
786b42da7e
Re-raise InvalidValueError for PasswordRequiredException
2019-05-19 20:27:44 +08:00
Sheng
9fbd5d325f
Made tests compatible with tornado 4.5.3
2019-02-21 17:32:55 +08:00
Sheng
b25fbd7b57
Changed exception error message
2019-02-21 16:12:48 +08:00
Sheng
824e6b9113
Refactored tests
2019-02-13 20:51:12 +08:00
Sheng
8922813142
Refactored tests
2019-02-13 11:40:44 +08:00
Sheng
d389e32b85
Enhanced tests
2019-02-13 09:30:06 +08:00
Sheng
a1c9378048
Support CORS
2019-01-23 21:48:03 +08:00
Sheng
713ae1e8f1
Support cross origin connect
2019-01-19 19:19:45 +08:00
Sheng
c35f801235
Support custom origin configuration
2019-01-19 16:46:25 +08:00
Sheng
8a8d741230
Refactored method is_forbidden
2019-01-16 22:58:49 +08:00
Sheng
682ddbf65f
Removed function for detecting whether the http(s) server is open to public
2019-01-15 23:02:14 +08:00
Sheng
2e0f06e650
Fixed is_same_primary_domain
2019-01-11 15:02:30 +08:00
Sheng
5c8bd84b95
Added an option for configuring cross-origin websocket level
2019-01-10 22:09:32 +08:00
Sheng
2653a3e35a
Added function for limiting connections for every client(ip)
2018-12-29 16:16:06 +08:00
Sheng
699b37d7a1
Updated test_app.py
2018-11-16 11:42:25 +08:00
Sheng
32f303474e
Updated test_app.py
2018-11-15 20:23:42 +08:00
Sheng
646621279b
Updated test_policy.py
2018-11-15 19:49:45 +08:00
Sheng
4525f50b11
Added test_main.py to tests
2018-10-23 22:56:18 +08:00
Sheng
d0542e72c6
Fixed test_get_redirect_url
2018-10-21 14:45:58 +08:00
Sheng
8e4039a24a
Support redirecting http to https
2018-10-21 14:07:44 +08:00
Sheng
40cf1095ff
Use open_to_public to store the status of the http(s) server
2018-10-20 17:54:12 +08:00
Sheng
e31e9be433
Updated get_trusted_downstream
2018-10-20 15:30:11 +08:00
Sheng
1f835f5a70
Refactored handler.py
2018-10-19 18:18:55 +08:00
Sheng
68468585ee
Added a command line option xheaders
2018-10-18 20:25:30 +08:00
Sheng
a8a444d7ed
Always reset fbidhttp to False if not open to public
2018-10-18 18:17:42 +08:00