Commit Graph

386 Commits

Author SHA1 Message Date
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
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