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
0473d71bea
Fix overflow in padding length calculation
2020-12-19 20:49:21 +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
2e36627a12
Make AdminUID optional and implement better validation on empty config fields
2020-12-19 15:34:17 +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
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
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
Andy Wang
061b10e802
Improve tests code quality
2020-12-06 11:14:33 +00:00
Andy Wang
61b1031da6
Reduce code duplication in session closing
2020-12-06 10:50:45 +00:00
Andy Wang
0327d0ffb3
Further reduce the amount of calls to AfterFunc
2020-12-06 00:16:29 +00:00
notsure2
208a7f249f
Fix memory leaking by extra timers.
2020-12-06 01:47:52 +02:00
Andy Wang
c0040f20c3
Use time.AfterFunc for session inactivity timeout to reduce goroutine count
2020-12-05 21:38:16 +00:00
Andy Wang
a3520c1018
Revert "Prevent time.Timer memory leak by using a singleton timer in bufferedPipes. Fix #137 "
...
This reverts commit 4baca256
2020-12-05 21:26:41 +00:00
Andy Wang
4baca256f7
Prevent time.Timer memory leak by using a singleton timer in bufferedPipes. Fix #137
2020-12-05 12:04:55 +00:00
Andy Wang
39c06a6e1d
Update comment
2020-12-04 22:27:24 +00:00
Andy Wang
095471103a
Fix timestamp tests
2020-11-24 19:00:02 +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
11cfeb4fa3
Improve comments
2020-10-21 16:37:32 +01:00
Andy Wang
735975ef88
Fix typo and remove redundant benchmark
2020-10-21 15:53:39 +01:00
Andy Wang
651854904f
Improve comments
2020-10-21 00:54:36 +01:00
Andy Wang
977f51ce48
Add comments
2020-10-20 01:10:57 +01:00
Andy Wang
c564114f76
Allow retries in time sensitive tests
2020-10-18 23:06:49 +01:00
Andy Wang
ef040b0115
Fix stream closing tests
2020-10-18 22:56:31 +01:00
Andy Wang
54bca721e8
Add tests for API handlers
2020-10-18 22:50:29 +01:00
Andy Wang
c5276df32e
Check payload AEAD's size in relation to frame header's size
2020-10-18 21:41:30 +01:00
Andy Wang
e141323c9d
Fix obfsBuf being too small on closing frame
2020-10-18 21:37:41 +01:00
Andy Wang
1ec11c175a
POST to /admin/users/{UID} will POST json string directly, rather than being encoded in FormData
2020-10-18 21:21:51 +01:00
Andy Wang
a3cd5a4029
Make tests wait longer between closing something and testing if the other end has closed
2020-10-18 15:52:36 +01:00
Andy Wang
f8f02bfc43
Parameterise session inactivity timeout
2020-10-18 15:51:57 +01:00
Andy Wang
0fc27d747e
Reduce unnecessary allocation size on stream closing
2020-10-18 15:37:14 +01:00
Andy Wang
64d857c74d
Rename variables for clarity
2020-10-18 15:36:40 +01:00
Andy Wang
acdb0d35fa
Reduce recvBuffer's implementation's buffer size limits
2020-10-18 14:56:58 +01:00
Andy Wang
c7c3f7706d
Refactor for clarity and add comments
2020-10-18 14:42:47 +01:00
Andy Wang
d706e8f087
Remove redundant code
2020-10-18 00:46:03 +01:00
Andy Wang
f111ab29ab
Fix RandRead retry timer
2020-10-18 00:45:45 +01:00
Andy Wang
0968285664
Improve test coverage
2020-10-18 00:45:28 +01:00
Andy Wang
c1b261c652
Add stream tests
2020-10-17 19:28:03 +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
a1bc148d50
Restore AddRecordLayer
2020-10-17 15:10:41 +01:00
Andy Wang
1f5e0c1d24
Add benchmark for TLSConn.Write
2020-10-17 15:06:45 +01:00
Andy Wang
86e2935607
Use a pre-made buffer for TLSConn.Write
2020-10-17 13:46:22 +01:00
Andy Wang
a86899f007
Improve comments
2020-10-17 12:24:23 +01:00
Andy Wang
e092e280c1
Refactor dispatcher.go
2020-10-17 11:15:21 +01:00
Andy Wang
d93ac48b85
Add build directives to fuzzing functions
2020-10-16 11:55:50 +01:00
Andy Wang
b2dbe4c654
Add fuzzer
2020-10-16 11:51:53 +01:00
Andy Wang
c17cb034e3
Wrap decryption error
2020-10-16 01:12:23 +01:00
Andy Wang
d2131799fc
Remove unnecessary table testing
2020-10-16 00:09:00 +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
3e133090f0
Give more descriptive names to multiplex objects
2020-10-15 22:51:36 +01:00
Andy Wang
f00ef43613
Fix time-dependant tests
2020-10-15 22:13:33 +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
0b217ddb07
Linting
2020-08-17 17:56:05 +01:00
Andy Wang
de5c51d3e4
Better redir piping behaviour
2020-08-12 12:07:32 +01:00
Andy Wang
253ea94d2a
Better and more explicit handling of first packet, reduces exposure of active probing
2020-08-12 11:32:39 +01:00
Andy Wang
2bb102a5b6
Use byte literals instead of decoding hex
2020-08-10 14:29:51 +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
98a7b731f3
Do not fatal when accept fails after 10 times
2020-06-08 00:29:56 +01:00
Andy Wang
95ae83d54d
Accept retry delay. Prevent #120
2020-06-07 20:06:52 +01:00
Andy Wang
2c995962ed
Fix spelling mistake
2020-06-07 12:20:48 +01:00
Andy Wang
ff10cbf67b
Revert "Fix WriteTo receive loop"
...
This reverts commit 501f7dda
Address #117
2020-06-07 12:16:08 +01:00
Andy Wang
501f7dda97
Fix WriteTo receive loop
2020-05-27 13:41:34 +01:00
Andy Wang
128f653ea4
Fix duplicate UDP binding
2020-05-27 13:41:34 +01:00
Andy Wang
5984fde09f
Better logging for user activation and termination
2020-05-27 13:41:34 +01:00
Andy Wang
ae3f97df1e
Rearrange if statement
2020-05-23 22:22:58 +01:00
Andy Wang
369f3c781c
Fix UDP
2020-05-23 15:44:24 +01:00
Andy Wang
2682460d46
Give time dependent tests more leeway
2020-04-24 01:19:30 +01:00
Andy Wang
13c1c3705b
Fix a race in test
2020-04-24 01:10:45 +01:00
Andy Wang
b9c3e64750
Add tests
2020-04-24 01:06:35 +01:00
Andy Wang
72d67beea3
Make usageQueue update interval a constant
2020-04-24 01:06:22 +01:00
Andy Wang
2e945cc416
Fix a deadlock on terminating user
2020-04-24 01:05:37 +01:00
Andy Wang
e508ade14b
Fix test
2020-04-24 01:04:51 +01:00
Andy Wang
acc0a1a2dd
Fix credit not updating on termination
2020-04-24 00:56:54 +01:00
Andy Wang
6ae3c27320
Add tests and make SessionCap explicitly int32
2020-04-23 23:45:12 +01:00
Andy Wang
1c8903f249
Log repeat stream closing on Debug level
2020-04-20 23:54:41 +01:00
Andy Wang
5baac79e56
Avoid null ProxyBook map. Fixes #111
2020-04-18 16:03:18 +01:00
Andy Wang
69a73ecfc0
Refactor usermanager
2020-04-17 14:21:17 +01:00
Andy Wang
d958de9938
Improve switchboard connscount
2020-04-17 01:04:26 +01:00
Andy Wang
70aa04354a
Bounds check elimination
2020-04-17 01:03:36 +01:00
Andy Wang
d2b17fc9a2
Fix a deadlock
2020-04-15 21:55:07 +01:00
Andy Wang
360f84c5d5
Improve tests
2020-04-14 14:14:51 +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
53c0c6bafe
Explicitly allow buf overlap in obfs
2020-04-13 22:48:28 +01:00
Andy Wang
97eb6aa096
Correct usages of b.SetBytes
2020-04-13 19:40:23 +01:00
Andy Wang
e03080d3ba
Lock stream sending in all cases
2020-04-13 16:39:19 +01:00
Andy Wang
3e6224d8e9
Protect buffer closing
2020-04-13 16:38:46 +01:00
Andy Wang
852f5f5e9f
Alter integration tests
2020-04-13 15:17:59 +01:00
Andy Wang
a8c584c242
Add tests
2020-04-13 15:17:19 +01:00
Andy Wang
c22b0fb54f
Fix test
2020-04-13 15:16:41 +01:00
Andy Wang
242fe28262
Use bool instead of atomic into to record closed status
2020-04-13 14:36:32 +01:00
Andy Wang
c8368bcc7e
Implement stream ReadFrom (flimsy)
2020-04-12 23:01:30 +01:00
Andy Wang
73544c03bb
Update comment
2020-04-12 16:35:24 +01:00
Andy Wang
248389b3f6
Make WriteTo return the correct errors
2020-04-12 16:34:49 +01:00
Andy Wang
f0e8b4556e
Eliminate some bounds check
2020-04-12 16:10:48 +01:00
Andy Wang
f05cc19dbc
Assign connId only when needed
2020-04-12 12:51:00 +01:00
Andy Wang
14787a7057
Implement stream WriteTo
2020-04-12 12:43:24 +01:00
Andy Wang
334712c413
Regression: closing in the middle of a read will block
2020-04-12 12:28:00 +01:00
Andy Wang
4351815a4a
fix stale code
2020-04-12 11:35:24 +01:00
Andy Wang
a82a1a5627
writerTo
2020-04-12 11:34:04 +01:00
Andy Wang
21cbe6ab5d
Implement WriterTo for receive buffers
2020-04-12 11:33:11 +01:00
Andy Wang
029da207ce
Optimise datagramBuffer
2020-04-12 11:18:41 +01:00
Andy Wang
f90a008271
Skip uploading nil update
2020-04-12 01:56:33 +01:00
Andy Wang
783d016a29
Fix a race on closing stream
2020-04-12 01:35:17 +01:00
Andy Wang
58e0797578
Synchronise stream.Write
2020-04-12 01:34:21 +01:00
Andy Wang
008fd8f0a3
Lazy allocation
2020-04-12 00:49:49 +01:00
Andy Wang
8a76afabf7
Reduce the amount of goroutines in tests
2020-04-11 23:09:51 +01:00
Andy Wang
17fd78b6c2
Use bbolt instead of bolt to fix go version compatibility issues
2020-04-11 23:09:29 +01:00
Andy Wang
ce35a054ed
Remove redundant tests
2020-04-11 22:43:29 +01:00
Andy Wang
5d4e8b8d8d
Refactor udp piping and add tests
2020-04-11 22:37:15 +01:00
Andy Wang
9f413ff23a
Fix multiconn benchmark
2020-04-11 19:03:44 +01:00
Andy Wang
e4b45a55e3
Optimise AddRecordLayer
2020-04-10 19:09:17 +01:00
Andy Wang
e9243a2e9f
Framing in Stream.Write to prevent silent short write
2020-04-10 18:48:36 +01:00
Andy Wang
17d57d9369
Add benchmarks
2020-04-10 18:48:01 +01:00
Andy Wang
8c9bab2a6f
TLSConn.Write returns correct length
2020-04-10 16:15:23 +01:00
Andy Wang
78b27c0705
Fix tests
2020-04-10 16:14:32 +01:00
Andy Wang
a51d45f41a
Avoid unnecessary pass by pointer
2020-04-10 16:09:05 +01:00
Andy Wang
2bf7df0eb0
Integration tests
2020-04-10 15:05:15 +01:00
Andy Wang
0f66fec28e
Remove impossible error
2020-04-10 14:11:01 +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
bbc0752883
Minor code cleanup
2020-04-09 19:10:04 +01:00
Andy Wang
86214a1df0
Implement stream SetReadDeadline
2020-04-09 18:56:17 +01:00
Andy Wang
e41394c83c
Set frame size limit through multiplexer
2020-04-09 16:37:46 +01:00
Andy Wang
780d607436
Use io.Copy for redir
2020-04-09 13:41:06 +01:00
Andy Wang
77c33ff352
Fix redir null pointer
2020-04-09 13:37:33 +01:00
Andy Wang
15f343db31
Refactor server configuration
2020-04-09 13:26:23 +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