Commit Graph

48 Commits

Author SHA1 Message Date
Andy Wang
d65aee725a Improve stream closing logic and add tests 2020-01-22 21:12:32 +00: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
339b324946 Working direct WebSocket transport 2019-09-01 20:23:45 +01:00
Andy Wang
0bc48a5a2e Remove redundant err checking TODO 2019-08-30 20:45:06 +01:00
Andy Wang
3f532ae065 writeFrame returns error 2019-08-30 20:43:04 +01:00
Andy Wang
a131af3439 Remove unnecessary Len check 2019-08-30 20:39:23 +01:00
Andy Wang
4fb1f55e2d Use 64bit frame Seq to prevent nonce reuse 2019-08-27 15:06:28 +01:00
Andy Wang
2006e5971a Refactor frameSorter and datagramBuffer under one interface 2019-08-22 11:48:10 +01:00
Andy Wang
87a7684e10 More comments 2019-08-20 22:43:04 +01:00
Andy Wang
c8184fc1d2 Switch back to juju/ratelimit 2019-08-17 11:23:26 +01:00
Andy Wang
44a09219f7 Experimental support for UDP 2019-08-14 11:56:55 +01:00
Qian Wang
71e48a1947 Refactor switchboard configuration and add unordered option 2019-08-12 00:48:20 +01:00
Qian Wang
fc9f227ccf stream.Write now returns the correct amount of data written 2019-08-08 10:56:29 +01:00
Qian Wang
3dc4c6fb3f Add more trace logs 2019-08-06 11:19:47 +01:00
Qian Wang
01036086c7 Change the frame distribution strategy so that each stream is assigned a fixed underlying TCP connection to send its frames to reduce framesorter ooo count 2019-08-05 22:14:11 +01:00
Qian Wang
fac381dbca Refactor switchboard 2019-08-05 14:33:20 +01:00
Qian Wang
d46fa74924 Refactor frame sorter 2019-08-05 13:32:53 +01:00
Qian Wang
640f81461c Buffer reuse in obfs 2019-08-04 10:38:49 +01:00
Qian Wang
e75c713385 Refactor session struct's obfs fields 2019-08-02 16:37:48 +01:00
Qian Wang
33f232475d Improve logging 2019-08-02 15:45:33 +01:00
Qian Wang
059a222394 Use defer to unlock mutexes 2019-07-28 12:52:57 +01:00
Qian Wang
bf8d373f79 Stream optimisations 2019-07-28 11:58:45 +01:00
Qian Wang
6fc48c5dae Fix a goroutine leak 2019-07-27 21:38:08 +01:00
Qian Wang
0e08683828 Use a buffered pipe to buffer sorted data 2019-07-27 19:53:16 +01:00
Qian Wang
592175f73d Close pipe properly 2019-07-25 22:06:33 +01:00
Qian Wang
2ce6f380d1 Implement admin control through a tunneled RESTful API 2019-07-25 12:17:29 +01:00
Qian Wang
299f08270c make Session implement net.Listener 2019-07-23 11:06:49 +01:00
Qian Wang
a52c3204d1 Fix a stuck RWMutex 2019-01-21 21:13:54 +00:00
Qian Wang
f4a1c21c2c Birng back sequence wrapping 2019-01-13 19:06:12 +00:00
Qian Wang
0544364a8e Cleanup logs 2019-01-12 15:51:20 +00:00
Qian Wang
d906541497 Redo the header obfuscation. Fix hiccups caused by short packets 2019-01-06 01:40:27 +00:00
Qian Wang
e31aef3030 Stop repetitive closing 2018-12-29 00:02:59 +00:00
Qian Wang
73aefdeeeb Done some TODOs 2018-12-22 23:58:03 +00:00
Qian Wang
ed1253ff4c Refactor MakeObfs and MakeDeobfs 2018-12-09 23:45:06 +00:00
Qian Wang
3b656c9360 Use sync.Once to close die ch 2018-11-23 23:57:35 +00:00
Qian Wang
c4048dccea Basic remote control 2018-11-22 21:55:23 +00:00
Qian Wang
3534d05055 QOS and user managing, bug fixes 2018-11-07 21:16:13 +00:00
Qian Wang
f476650953 Rework switchboard dispatch 2018-10-28 21:22:38 +00:00
Qian Wang
9e4aedbdc1 Stream closing is now ordered 2018-10-27 23:35:46 +01:00
Qian Wang
077eb16dba Fix goroutine leak 2018-10-27 15:27:43 +01:00
Qian Wang
0db52a8a26 General improvements 2018-10-23 20:47:58 +01:00
Qian Wang
7487600434 Mostly works 2018-10-20 11:35:50 +01:00
Qian Wang
02fa072964 Fix infinite loop. Baseline 2018-10-16 21:13:19 +01:00
Qian Wang
a8786a5576 Use ECDH instead of ECIES 2018-10-14 20:32:54 +01:00
Qian Wang
b9f2aa4ed0 Barely working 2018-10-09 21:53:55 +01:00
Qian Wang
3fd7e01566 Untested client 2018-10-07 18:09:45 +01:00
Qian Wang
44d2c0e073 Multiplex initial commit 2018-10-05 23:44:20 +01:00