Commit Graph

756 Commits

Author SHA1 Message Date
Andy Wang 4d1612774f
Use a buffer pool to reduce contentions in tls wrapper 2020-12-23 00:02:25 +00:00
notsure2 512f33dd27 Merge branch 'udp-session-timeout' into notsure2 2020-12-23 00:02:01 +02:00
notsure2 874d30c512 Implement UDP stream timeout. 2020-12-23 00:01:35 +02:00
notsure2 9d79842536 Merge branch 'master' into notsure2 2020-12-22 23:36:07 +02:00
Andy Wang 35f41424c9
Use default hashmap to store streams. Avoid allocating a stream object on receiving every single frame 2020-12-22 20:21:40 +00:00
Andy Wang fd5005db0a
Fix a timing sensitive test on reading data after actively closing a stream 2020-12-22 20:16:47 +00:00
Andy Wang ff503b06a8
Only allocate and copy frame object into sorter heap when necessary (out of order frame) 2020-12-22 19:39:13 +00:00
Andy Wang 5a3f63f101
Reduce allocation of frame objects on receiving data 2020-12-22 14:45:29 +00:00
Andy Wang 104117cafb
Fix one instance of not accessing recvBuf via the getter 2020-12-22 14:32:41 +00:00
Andy Wang 4bc80af9a1
Lazily allocate stream receiving buffer 2020-12-22 14:12:00 +00:00
Andy Wang badda76454
Improve data receive benchmark 2020-12-22 13:40:37 +00:00
Andy Wang 42f36b94d3
Achieve zero allocation when writing data through stream 2020-12-22 13:16:48 +00:00
Andy Wang 3633c9a03c
Fix multiplex test as test payload length may be randomised to 0 2020-12-22 12:39:39 +00:00
Andy Wang c9ac93b0b9
Refactor session_test.go 2020-12-21 20:38:28 +00:00
Andy Wang de0daac123
Update deprecated curve25519 functions and defend against low-order point attacks 2020-12-21 16:37:33 +00:00
Andy Wang 0d3f8dd27f
Allow DatabasePath to be empty if user info database is never used 2020-12-21 15:06:46 +00:00
Andy Wang 298e6249e6
Fixup build scripts 2020-12-20 00:21:16 +00:00
notsure2 c42b2a555f Merge branch 'master' into notsure2 2020-12-20 01:02:48 +02:00
Andy Wang 189c69ec25
popd after compilation script finishes 2020-12-19 21:04:33 +00:00
Andy Wang 3f941ee4e1
Edit release action glob 2020-12-19 20:54:08 +00:00
Andy Wang 0473d71bea
Fix overflow in padding length calculation 2020-12-19 20:49:21 +00:00
notsure2 62f7c771a5 Fix bad merge. 2020-12-19 22:44:42 +02:00
Andy Wang 1e41aabe7d
Alter glob in release action 2020-12-19 20:37:42 +00:00
notsure2 3155194ebe Merge branch 'master' into notsure2 2020-12-19 22:36:26 +02:00
Andy Wang c293cd3789
Migrate off azure 2020-12-19 20:25:38 +00:00
Andy Wang fa4ec77d71
Remove Travis CI badge 2020-12-19 20:21:34 +00:00
Andy Wang 4a37449d33
Replace all time-sensitive tests with assert.Eventually 2020-12-19 20:14:43 +00:00
Andy Wang 8d146582d2
Add release action 2020-12-19 19:42:31 +00:00
Andy Wang 005da456c0
Fix timing sensitive tests 2020-12-19 19:30:53 +00:00
Andy Wang 275540a793
Fix commandline syntax 2020-12-19 19:21:36 +00:00
Andy Wang 3728622f48
Add github actions 2020-12-19 19:17:18 +00:00
Andy Wang 2e36627a12
Make AdminUID optional and implement better validation on empty config fields 2020-12-19 15:34:17 +00:00
Andy Wang 21bcb53062
Human friendly key and uid generators 2020-12-19 15:24:25 +00:00
Andy Wang a803d20970
Remove sensitive keys from example configs to prevent people from using them 2020-12-19 14:45:55 +00:00
不确定 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
notsure2 77f9f6c9a4 Merge branch 'fix-blocking-make-session' into notsure2 2020-12-14 08:56:58 +02:00
notsure2 4dabcd22eb 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.
2020-12-14 08:52:11 +02:00
Andy Wang 7b6a82b364
Remove StreamTimeout from ckserver's example config 2020-12-13 12:37:25 +00:00
notsure2 566874874d Merge branch 'master' into notsure2 2020-12-12 22:48:41 +02:00
Andy Wang c3ee9f2127
Merge branch 'master' of github.com:cbeuw/Cloak 2020-12-12 20:45:14 +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
notsure2 1e6a348d4e Merge branch 'master' into notsure2 2020-12-12 22:06:56 +02:00
notsure2 e6799b2c1c Merge branch 'add-cdn-http-host-config-setting' into notsure2 2020-12-12 21:39:41 +02:00
Andy Wang 93c355d2a6
Rename CdnHttpHost to CDNOriginHost and make README more concise 2020-12-12 18:17:26 +00:00
Andy Wang d5a003d6d6
Remove StreamTimeout from server completely 2020-12-12 17:51:54 +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
notsure2 273e5a7750 Merge branch 'fix-termination-of-long-downloads' into notsure2 2020-12-12 02:39:56 +02:00
notsure2 9d6ab39a77 Revert changes to multiplex module. Remove timeout from caller. 2020-12-12 02:37:06 +02:00
Andy Wang 57138e84e5
Merge branch 'master' of github.com:cbeuw/Cloak 2020-12-11 19:52:54 +00:00
notsure2 caca33a1a5 Respect user choice of ProxyMethod in shadowsocks plugin mode. 2020-12-11 09:03:48 +00:00