Commit Graph

329 Commits

Author SHA1 Message Date
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
Andy Wang
ec76ecfe71 Update tests 2020-04-08 21:47:31 +01:00
Andy Wang
693544659f Refactor server transport 2020-04-08 21:37:21 +01:00
Andy Wang
7bfae8accd Refactor client side transport (breaks server) 2020-04-08 20:53:09 +01:00
Andy Wang
96845700f8 Add some integration tests for multiplex 2020-04-08 18:26:57 +01:00
Andy Wang
a461059b4a Change behaviour of stream.Write(nil) 2020-04-08 18:16:54 +01:00
Andy Wang
d3bc3b5a13 Use connutil in test 2020-04-08 16:41:39 +01:00
Andy Wang
dc2b1124cb move function out of util 2020-04-08 16:34:20 +01:00
Andy Wang
db9b848053 Simplify ReadTLS 2020-04-08 16:31:55 +01:00
Andy Wang
43ae82ec0e Fix test, improve err message and fix nil interface casting 2020-04-08 15:58:46 +01:00
Andy Wang
3bc59ff4b6 Fix tests 2020-04-08 15:17:33 +01:00
Andy Wang
2dc7c6d6e1 Correct switchboard valve's scope 2020-04-08 15:15:08 +01:00
Andy Wang
e52daf1a39 Set defaults properly 2020-04-08 15:13:49 +01:00
Andy Wang
545164a300 Make send/receive buffer sizes configurable 2020-04-08 15:07:35 +01:00
Andy Wang
1de5045003 Use errors from io 2020-04-08 14:59:09 +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
443aeecf5f Use cbeuw/connutil for connection testing 2020-04-07 20:59:32 +01:00
Andy Wang
e7963b9e24 Change wsAcceptor's name to wsOnceListener 2020-04-07 18:18:14 +01:00
Andy Wang
8d375e3f9b remove redundant fields 2020-04-06 20:51:21 +01:00
Andy Wang
e8af6233c1 Fix test 2020-04-06 15:58:34 +01:00
Andy Wang
285b966326 Fix server reply certificate length 2020-04-06 15:55:22 +01:00
Andy Wang
6a83c58143 Refactor authentication pipeline 2020-04-06 15:24:18 +01:00
Andy Wang
a161409577 Rename a struct 2020-04-06 14:29:38 +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
402cfc9e25 Logging for silent connections 2020-04-05 01:15:45 +01:00
Andy Wang
8d84ebd145 Code styles 2020-04-05 00:56:43 +01:00
Andy Wang
dc262f7ca5 actually change the connId of a stream upon new assignment in send 2020-04-05 00:52:06 +01:00
Andy Wang
e9afae72f0 better stream closing error message 2020-04-05 00:51:28 +01:00
Andy Wang
6d75aaff01 fix return shadowing 2020-04-05 00:39:59 +01:00
Andy Wang
e4da349aa0 Add websocket auth test 2020-04-04 16:11:02 +01:00
Andy Wang
5e1931a11c Ineffectual assignments 2020-04-04 16:10: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
Andy Wang
d05809f2a6 Fix logging of transport 2020-04-03 23:37:09 +01:00
Andy Wang
766c27a129 Refactor if to switch case 2020-04-03 22:46:07 +01:00
Andy Wang
75ab568cda Merge branch 'master' of https://github.com/cbeuw/Cloak 2020-04-03 22:44:39 +01:00
Andy Wang
85e95de69c variable cert length in TLS server response 2020-03-16 11:39:27 +00:00
Andy Wang
e33afb258a extract util testing function 2020-03-16 11:38:30 +00:00
Andy Wang
47410dbb97 add comments 2020-03-15 23:56:45 +00:00
Andy Wang
db8dd19c9d fix broken benchmarks 2020-03-15 23:55:56 +00: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
e714dc61a8 Add a test for server touchstone 2020-01-25 10:20:11 +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
fa1c109d90 Make authentication info arrays 2020-01-24 15:13:26 +00:00
Andy Wang
fe8b2d78ef Change authenticationInfo structure 2020-01-24 14:38:41 +00:00
Andy Wang
13b66f6fef Remove redundant code 2020-01-24 13:30:17 +00:00
Andy Wang
f90ad52455 Add default stream timeout value to client 2020-01-23 20:31:08 +00:00
Andy Wang
6f34229aa0 Make and add stream upon reception of all new streamIDs even if they are closing 2020-01-23 20:30:31 +00:00
Andy Wang
39e54bae6c Fix transport null pointer 2020-01-22 22:27:19 +00:00
Andy Wang
99fa812594 Fix pickRandConn bad loop 2020-01-22 22:17:18 +00:00
Andy Wang
3f5fdae284 Close session immediately after receiving signal 2020-01-22 21:30:30 +00:00
Andy Wang
d65aee725a Improve stream closing logic and add tests 2020-01-22 21:12:32 +00:00
Andy Wang
af5c8a381f Make a test streamline instead of modular 2020-01-22 19:33:53 +00:00
Andy Wang
3d3d06ec96 Fix tests 2020-01-22 18:40:03 +00:00
Andy Wang
74a70a3113 Refactor Transport and add tests 2020-01-22 18:37:01 +00:00
Andy Wang
e7e4cd5726 Refactor frame reception processor 2020-01-09 10:22:40 +00:00
Andy Wang
65553f4ec4 Remove redundant base64 decoding 2019-12-29 16:55:21 +00:00
Andy Wang
e3552b2afc Refactor server config parser and add tests 2019-12-29 13:28:52 +00:00
notsure2
d35472aea1 Store stream in packet receive path instead of asynchronously to fix https://github.com/cbeuw/Cloak/issues/74 2019-12-14 12:48:45 +00:00
Andy Wang
bdd5308169 Code style clean up 2019-11-08 17:06:20 +00:00
Andy Wang
9c30c9b5b5 Add explanations on accepting websocket connections 2019-11-08 16:56:31 +00:00
Andy Wang
fbee919f47 Use constants for Closing value 2019-11-03 20:28:43 +00:00
Andy Wang
c26be98e79 Use sync.Map in multiplex instead of manual locks 2019-11-03 12:22:12 +00:00
Andy Wang
9cab4670f4 Make buffer close non-blocking 2019-11-02 21:02:35 +00:00
Andy Wang
4c17923717 Make write error close session as well 2019-10-20 15:37:41 +01:00
Andy Wang
e2b21dae9f Fix tests 2019-10-20 15:21:31 +01:00
Andy Wang
3649283a49 Fix tests 2019-10-20 15:18:27 +01:00
Andy Wang
57f0c3d20a Close session when one connection drops 2019-10-16 23:00:23 +01:00
Andy Wang
34a4805c34 Add tests 2019-10-16 23:00:11 +01:00
Andy Wang
a1b719b15f Add terminal message 2019-10-15 22:24:33 +01:00
Andy Wang
beb6568ce0 Check before passive close 2019-10-15 22:06:23 +01:00
Andy Wang
3b3cd277f8 Fix stream not closing 2019-10-15 22:06:11 +01:00
Andy Wang
67159abcf4 Add tests 2019-10-15 21:59:13 +01:00
Andy Wang
6580e38e44 Introduce a special Session closing frame 2019-10-14 15:34:14 +01:00
Andy Wang
c9318dc90b Fix potential deadlocks 2019-10-08 23:11:16 +01:00
Andy Wang
96215f116a Fix #61 2019-09-22 10:44:16 +01:00
Andy Wang
8c477fb2b5 Default StreamTimeout to 300 seconds 2019-09-21 16:47:02 +01:00
Andy Wang
52720ca52f RedirAddr backward compatibility 2019-09-21 16:17:43 +01:00
Andy Wang
eec295a00e Remove unnecessary pointer value 2019-09-15 21:33:35 +01:00
Andy Wang
8a6f6b6088 Minor error prompt and listen to :80 and :443 by default 2019-09-15 18:11:23 +01:00
Andy Wang
63f3b4a89f Allow server to listen on multiple ports 2019-09-15 15:29:29 +01:00
Andy Wang
e2d4ab7376 Use non-pointer receiver instead 2019-09-02 14:04:52 +01:00
Andy Wang
98b77afb91 websocket over TLS 2019-09-02 14:03:10 +01:00
Andy Wang
854dc422a2 Update some comments 2019-09-01 23:14:28 +01:00
Andy Wang
339b324946 Working direct WebSocket transport 2019-09-01 20:23:45 +01:00
Andy Wang
f47f57a59f Direct WebSocket 2019-09-01 01:33:34 +01:00
Andy Wang
3a28bb65d5 Refactor touchStone 2019-08-31 21:40:50 +01:00
Andy Wang
a3c3c5dc07 Client side plain websocket 2019-08-31 18:01:39 +01:00
Andy Wang
75dc91c15c Fix wrong wait type 2019-08-31 15:33:23 +01:00
Andy Wang
4861efbc50 Fix #54 2019-08-31 15:32:57 +01:00