Commit Graph

274 Commits

Author SHA1 Message Date
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 c1b261c652 Add stream tests 2020-10-17 19:28:03 +01:00
Andy Wang 86e2935607 Use a pre-made buffer for TLSConn.Write 2020-10-17 13:46:22 +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 3e133090f0 Give more descriptive names to multiplex objects 2020-10-15 22:51:36 +01:00
Andy Wang 9887649b88 Refactor Singleplexing 2020-10-15 21:32:38 +01:00
Andy Wang 0b217ddb07 Linting 2020-08-17 17:56:05 +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 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 1c8903f249 Log repeat stream closing on Debug level 2020-04-20 23:54:41 +01:00
Andy Wang d958de9938 Improve switchboard connscount 2020-04-17 01:04:26 +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 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 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 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 e9243a2e9f Framing in Stream.Write to prevent silent short write 2020-04-10 18:48:36 +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 e5bda61587 Close connections properly 2020-04-09 23:52:08 +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 97858197cd Move common types to its own package 2020-04-09 00:39:40 +01:00
Andy Wang ec76ecfe71 Update tests 2020-04-08 21:47:31 +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 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 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 5e1931a11c Ineffectual assignments 2020-04-04 16:10:43 +01:00
Andy Wang 766c27a129 Refactor if to switch case 2020-04-03 22:46:07 +01: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
Andy Wang 517a6d6e57 Handle error and retry for Crypto.rand 2020-02-01 23:46:46 +00:00
Andy Wang 13b66f6fef Remove redundant code 2020-01-24 13:30:17 +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 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 e7e4cd5726 Refactor frame reception processor 2020-01-09 10:22:40 +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 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 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 854dc422a2 Update some comments 2019-09-01 23:14:28 +01:00