Commit Graph

100 Commits

Author SHA1 Message Date
不确定
cfbf0dfcb6
Fix critical bugs in session opening for TCP and UDP in case of Singleplex mode. (#145)
* Fix critical bugs in session opening for TCP and UDP in case of Singleplex mode.

- In case of TCP, don't open the session in the listener accept thread. This
  causes resource exhaustion of the tcp listener backlog queue in case of internet
  connection disruption or timeout.

- In case of UDP, don't create a new session for every UDP packet.

* Fix race in integration test.

* Fix race condition in session maker

* Code style improvements

* Explicit session.Close() call is indeed needed

Co-authored-by: Andy Wang <cbeuw.andy@gmail.com>
2020-12-19 14:42:10 +00:00
不确定
a72273096a
Add CdnHttpHost config setting with documentation. (#143)
* Add CdnHttpHost config setting with documentation.

* Rename CdnHttpHost to CDNOriginHost and make README more concise

Co-authored-by: Andy Wang <cbeuw.andy@gmail.com>
2020-12-12 20:40:48 +00:00
不确定
e77fd4c446
Fix regression: termination of long downloads after StreamTimeout seconds (#141)
* Fix termination of long downloads after StreamTimeout seconds.

- Even if not broadcasting in a loop, we still need to update the read deadline.
- Don't enforce the timeout after the first data is written.

* When timeout no longer needs to be enforced, no need to schedule a broadcast.

* Fix Cloak client. Don't enforce read deadline after first read.

* Enforce StreamTimeout on the initial bytes sent by localConn only.

* Revert changes to multiplex module. Remove timeout from caller.
2020-12-12 17:00:46 +00:00
不确定
b7e7bfb314
Make sure times are UTC and correctly subtract the timestamp window from the server time. (#134) 2020-11-24 18:58:02 +00:00
Andy Wang
0f6e0d37b5 Rename constants to camel case 2020-10-21 16:42:24 +01:00
Andy Wang
c7c3f7706d Refactor for clarity and add comments 2020-10-18 14:42:47 +01:00
Andy Wang
c749b107e2 Improve test coverage for client's ParseConfig 2020-10-17 18:52:00 +01:00
Andy Wang
a59d9cb880 Fix singleplex and add tests 2020-10-17 16:15:55 +01:00
Andy Wang
86e2935607 Use a pre-made buffer for TLSConn.Write 2020-10-17 13:46:22 +01:00
Andy Wang
3f3259d4d3 MakeSession no longer needs to know if the Session should be admin 2020-10-15 23:02:51 +01:00
Andy Wang
f96925982f Rename SplitConfigs to ProcessRawConfig to better reflect its behaviour 2020-10-15 22:51:59 +01:00
Andy Wang
9887649b88 Refactor Singleplexing 2020-10-15 21:32:38 +01:00
Andy Wang
c3ea7f7263 Fix test GREASE comparison 2020-09-13 11:32:07 +01:00
Andy Wang
8d2605cafa Fix test 2020-09-12 21:40:49 +01:00
Andy Wang
05482e64d2 Update Chrome signature to 85. Address #129 2020-09-12 21:18:31 +01:00
Andy Wang
cfbdd9a608 Prevent nil pointer panic when server response is incorrect under CDN mode 2020-09-07 14:48:07 +01:00
Andy Wang
6bd2e8fe1e Mitigation for https://github.com/cbeuw/Cloak-android/issues/13 2020-07-27 16:33:11 +01:00
notsure2
dab137dbd7 Support session per connection mode (like GoQuiet) when NumConn = 0. 2020-07-06 23:18:52 +02:00
Andy Wang
128f653ea4 Fix duplicate UDP binding 2020-05-27 13:41:34 +01:00
Andy Wang
369f3c781c Fix UDP 2020-05-23 15:44:24 +01:00
Andy Wang
e202d8d03b Implement WriteTo and ReadFrom timeouts 2020-04-14 14:14:51 +01:00
Andy Wang
4a81683e44 Code cleanup and move stuff around 2020-04-14 14:14:51 +01:00
Andy Wang
5d4e8b8d8d Refactor udp piping and add tests 2020-04-11 22:37:15 +01:00
Andy Wang
93cf6dec6e Export fields for testing 2020-04-10 14:09:48 +01:00
Andy Wang
d53b80208f Refactor for easier testing 2020-04-10 11:07:38 +01:00
Andy Wang
e5bda61587 Close connections properly 2020-04-09 23:52:08 +01:00
Andy Wang
254b7152b6 Fix tests 2020-04-09 22:21:02 +01:00
Andy Wang
444182f5bb Purge impurity 2020-04-09 22:11:12 +01:00
Andy Wang
e41394c83c Set frame size limit through multiplexer 2020-04-09 16:37:46 +01:00
Andy Wang
97858197cd Move common types to its own package 2020-04-09 00:39:40 +01:00
Andy Wang
86095ba5e6 Refactor out Dialer 2020-04-09 00:34:02 +01:00
Andy Wang
2400a33818 Remove extra imports 2020-04-08 22:17:08 +01:00
Andy Wang
7e9fe952aa Move code around for clarity 2020-04-08 22:07:11 +01:00
Andy Wang
7bfae8accd Refactor client side transport (breaks server) 2020-04-08 20:53:09 +01:00
Andy Wang
dc2b1124cb move function out of util 2020-04-08 16:34:20 +01:00
Andy Wang
545164a300 Make send/receive buffer sizes configurable 2020-04-08 15:07:35 +01:00
Andy Wang
01e5d15d20 Code cleanup 2020-04-08 12:18:20 +01:00
Andy Wang
963dae829d Fix tests 2020-04-07 21:19:40 +01:00
Andy Wang
c1f3408c2c Make key lengths explicit 2020-04-07 21:15:28 +01:00
Andy Wang
903a413afc Update test 2020-04-06 13:14:11 +01:00
Andy Wang
25e41d0941 Allow UDP option to be set in both commandline and json 2020-04-06 13:11:19 +01:00
Andy Wang
a163f066a6 Refactor client config 2020-04-06 13:07:16 +01:00
Andy Wang
8d84ebd145 Code styles 2020-04-05 00:56:43 +01:00
notsure2
2de034ec92 Make keepalive optional on client -> server and server -> proxy connections. Use KeepAlive value in config (seconds). 2020-04-04 15:32:19 +01:00
Andy Wang
2327420f75 Allow remote host to be set in the client config file 2020-04-04 00:43:06 +01:00
beans
23082aff4f Allow RemotePort to be optionally set in JSON. If it's not set in JSON, Cloak falls back to SS_REMOTE_PORT in SS mode, or the -p argument in standalone 2020-02-14 21:57:57 +00:00
Andy Wang
517a6d6e57 Handle error and retry for Crypto.rand 2020-02-01 23:46:46 +00:00
Andy Wang
bc5ce842a0 Refactor makeAuthenticationPayload to allow easier tests 2020-01-25 10:19:45 +00:00
Andy Wang
abc39e4e90 Refactor authentication data representations 2020-01-24 16:44:29 +00:00
Andy Wang
f90ad52455 Add default stream timeout value to client 2020-01-23 20:31:08 +00:00