Commit Graph

468 Commits (f27889af11bfecaf70459aae77111b038fc6cb29)

Author SHA1 Message Date
Andy Wang 242fe28262 Use bool instead of atomic into to record closed status 5 years ago
Andy Wang c8368bcc7e Implement stream ReadFrom (flimsy) 5 years ago
Andy Wang 73544c03bb Update comment 5 years ago
Andy Wang 248389b3f6 Make WriteTo return the correct errors 5 years ago
Andy Wang f0e8b4556e Eliminate some bounds check 5 years ago
Andy Wang f05cc19dbc Assign connId only when needed 5 years ago
Andy Wang 14787a7057 Implement stream WriteTo 5 years ago
Andy Wang 334712c413 Regression: closing in the middle of a read will block 5 years ago
Andy Wang 4351815a4a fix stale code 5 years ago
Andy Wang a82a1a5627 writerTo 5 years ago
Andy Wang 21cbe6ab5d Implement WriterTo for receive buffers 5 years ago
Andy Wang 029da207ce Optimise datagramBuffer 5 years ago
Andy Wang f90a008271 Skip uploading nil update 5 years ago
Andy Wang 783d016a29 Fix a race on closing stream 5 years ago
Andy Wang 58e0797578 Synchronise stream.Write 5 years ago
Andy Wang 008fd8f0a3 Lazy allocation 5 years ago
Andy Wang 8a76afabf7 Reduce the amount of goroutines in tests 5 years ago
Andy Wang 17fd78b6c2 Use bbolt instead of bolt to fix go version compatibility issues 5 years ago
Andy Wang ce35a054ed Remove redundant tests 5 years ago
Andy Wang 5d4e8b8d8d Refactor udp piping and add tests 5 years ago
Andy Wang 9f413ff23a Fix multiconn benchmark 5 years ago
Andy Wang e4b45a55e3 Optimise AddRecordLayer 5 years ago
Andy Wang e9243a2e9f Framing in Stream.Write to prevent silent short write 5 years ago
Andy Wang 17d57d9369 Add benchmarks 5 years ago
Andy Wang 8c9bab2a6f TLSConn.Write returns correct length 5 years ago
Andy Wang 78b27c0705 Fix tests 5 years ago
Andy Wang a51d45f41a Avoid unnecessary pass by pointer 5 years ago
Andy Wang 2bf7df0eb0 Integration tests 5 years ago
Andy Wang 0f66fec28e Remove impossible error 5 years ago
Andy Wang 93cf6dec6e Export fields for testing 5 years ago
Andy Wang d53b80208f Refactor for easier testing 5 years ago
Andy Wang e5bda61587 Close connections properly 5 years ago
Andy Wang 254b7152b6 Fix tests 5 years ago
Andy Wang 444182f5bb Purge impurity 5 years ago
Andy Wang bbc0752883 Minor code cleanup 5 years ago
Andy Wang 86214a1df0 Implement stream SetReadDeadline 5 years ago
Andy Wang e41394c83c Set frame size limit through multiplexer 5 years ago
Andy Wang 780d607436 Use io.Copy for redir 5 years ago
Andy Wang 77c33ff352 Fix redir null pointer 5 years ago
Andy Wang 15f343db31 Refactor server configuration 5 years ago
Andy Wang 97858197cd Move common types to its own package 5 years ago
Andy Wang 86095ba5e6 Refactor out Dialer 5 years ago
Andy Wang 2400a33818 Remove extra imports 5 years ago
Andy Wang 7e9fe952aa Move code around for clarity 5 years ago
Andy Wang ec76ecfe71 Update tests 5 years ago
Andy Wang 693544659f Refactor server transport 5 years ago
Andy Wang 7bfae8accd Refactor client side transport (breaks server) 5 years ago
Andy Wang 96845700f8 Add some integration tests for multiplex 5 years ago
Andy Wang a461059b4a Change behaviour of stream.Write(nil) 5 years ago
Andy Wang d3bc3b5a13 Use connutil in test 5 years ago
Andy Wang dc2b1124cb move function out of util 5 years ago
Andy Wang db9b848053 Simplify ReadTLS 5 years ago
Andy Wang 43ae82ec0e Fix test, improve err message and fix nil interface casting 5 years ago
Andy Wang 3bc59ff4b6 Fix tests 5 years ago
Andy Wang 2dc7c6d6e1 Correct switchboard valve's scope 5 years ago
Andy Wang e52daf1a39 Set defaults properly 5 years ago
Andy Wang 545164a300 Make send/receive buffer sizes configurable 5 years ago
Andy Wang 1de5045003 Use errors from io 5 years ago
Andy Wang 01e5d15d20 Code cleanup 5 years ago
Andy Wang 963dae829d Fix tests 5 years ago
Andy Wang c1f3408c2c Make key lengths explicit 5 years ago
Andy Wang 443aeecf5f Use cbeuw/connutil for connection testing 5 years ago
Andy Wang e7963b9e24 Change wsAcceptor's name to wsOnceListener 5 years ago
Andy Wang 8d375e3f9b remove redundant fields 5 years ago
Andy Wang e8af6233c1 Fix test 5 years ago
Andy Wang 285b966326 Fix server reply certificate length 5 years ago
Andy Wang 6a83c58143 Refactor authentication pipeline 5 years ago
Andy Wang a161409577 Rename a struct 5 years ago
Andy Wang 903a413afc Update test 5 years ago
Andy Wang 25e41d0941 Allow UDP option to be set in both commandline and json 5 years ago
Andy Wang a163f066a6 Refactor client config 5 years ago
Andy Wang 402cfc9e25 Logging for silent connections 5 years ago
Andy Wang 8d84ebd145 Code styles 5 years ago
Andy Wang dc262f7ca5 actually change the connId of a stream upon new assignment in send 5 years ago
Andy Wang e9afae72f0 better stream closing error message 5 years ago
Andy Wang 6d75aaff01 fix return shadowing 5 years ago
Andy Wang e4da349aa0 Add websocket auth test 5 years ago
Andy Wang 5e1931a11c Ineffectual assignments 5 years ago
notsure2 2de034ec92 Make keepalive optional on client -> server and server -> proxy connections. Use KeepAlive value in config (seconds). 5 years ago
Andy Wang 2327420f75 Allow remote host to be set in the client config file 5 years ago
Andy Wang d05809f2a6 Fix logging of transport 5 years ago
Andy Wang 766c27a129 Refactor if to switch case 5 years ago
Andy Wang 75ab568cda Merge branch 'master' of https://github.com/cbeuw/Cloak 5 years ago
Andy Wang 85e95de69c variable cert length in TLS server response 5 years ago
Andy Wang e33afb258a extract util testing function 5 years ago
Andy Wang 47410dbb97 add comments 5 years ago
Andy Wang db8dd19c9d fix broken benchmarks 5 years ago
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 5 years ago
Andy Wang 517a6d6e57 Handle error and retry for Crypto.rand 5 years ago
Andy Wang e714dc61a8 Add a test for server touchstone 5 years ago
Andy Wang bc5ce842a0 Refactor makeAuthenticationPayload to allow easier tests 5 years ago
Andy Wang abc39e4e90 Refactor authentication data representations 5 years ago
Andy Wang fa1c109d90 Make authentication info arrays 5 years ago
Andy Wang fe8b2d78ef Change authenticationInfo structure 5 years ago
Andy Wang 13b66f6fef Remove redundant code 5 years ago
Andy Wang f90ad52455 Add default stream timeout value to client 5 years ago
Andy Wang 6f34229aa0 Make and add stream upon reception of all new streamIDs even if they are closing 5 years ago
Andy Wang 39e54bae6c Fix transport null pointer 5 years ago
Andy Wang 99fa812594 Fix pickRandConn bad loop 5 years ago
Andy Wang 3f5fdae284 Close session immediately after receiving signal 5 years ago
Andy Wang d65aee725a Improve stream closing logic and add tests 5 years ago
Andy Wang af5c8a381f Make a test streamline instead of modular 5 years ago
Andy Wang 3d3d06ec96 Fix tests 5 years ago
Andy Wang 74a70a3113 Refactor Transport and add tests 5 years ago
Andy Wang e7e4cd5726 Refactor frame reception processor 5 years ago
Andy Wang 65553f4ec4 Remove redundant base64 decoding 5 years ago
Andy Wang e3552b2afc Refactor server config parser and add tests 5 years ago
notsure2 d35472aea1 Store stream in packet receive path instead of asynchronously to fix https://github.com/cbeuw/Cloak/issues/74 5 years ago
Andy Wang bdd5308169 Code style clean up 5 years ago
Andy Wang 9c30c9b5b5 Add explanations on accepting websocket connections 5 years ago
Andy Wang fbee919f47 Use constants for Closing value 5 years ago
Andy Wang c26be98e79 Use sync.Map in multiplex instead of manual locks 5 years ago
Andy Wang 9cab4670f4 Make buffer close non-blocking 5 years ago
Andy Wang 4c17923717 Make write error close session as well 5 years ago
Andy Wang e2b21dae9f Fix tests 5 years ago
Andy Wang 3649283a49 Fix tests 5 years ago
Andy Wang 57f0c3d20a Close session when one connection drops 5 years ago
Andy Wang 34a4805c34 Add tests 5 years ago
Andy Wang a1b719b15f Add terminal message 5 years ago
Andy Wang beb6568ce0 Check before passive close 5 years ago
Andy Wang 3b3cd277f8 Fix stream not closing 5 years ago
Andy Wang 67159abcf4 Add tests 5 years ago
Andy Wang 6580e38e44 Introduce a special Session closing frame 5 years ago
Andy Wang c9318dc90b Fix potential deadlocks 5 years ago
Andy Wang 96215f116a Fix #61 5 years ago
Andy Wang 8c477fb2b5 Default StreamTimeout to 300 seconds 5 years ago
Andy Wang 52720ca52f RedirAddr backward compatibility 5 years ago
Andy Wang eec295a00e Remove unnecessary pointer value 5 years ago
Andy Wang 8a6f6b6088 Minor error prompt and listen to :80 and :443 by default 5 years ago
Andy Wang 63f3b4a89f Allow server to listen on multiple ports 5 years ago
Andy Wang e2d4ab7376 Use non-pointer receiver instead 5 years ago
Andy Wang 98b77afb91 websocket over TLS 5 years ago
Andy Wang 854dc422a2 Update some comments 5 years ago
Andy Wang 339b324946 Working direct WebSocket transport 5 years ago
Andy Wang f47f57a59f Direct WebSocket 5 years ago
Andy Wang 3a28bb65d5 Refactor touchStone 5 years ago
Andy Wang a3c3c5dc07 Client side plain websocket 5 years ago
Andy Wang 75dc91c15c Fix wrong wait type 5 years ago
Andy Wang 4861efbc50 Fix #54 5 years ago
Andy Wang 31898dad63 Change the way user termination works 5 years ago
Andy Wang 9dacb9d8fd Handle closing frame properly in datagramBuffer 5 years ago
Andy Wang 3bfaa5c1c1 Receiving a closing frame no longer returns error on Write 5 years ago
Andy Wang 0bc48a5a2e Remove redundant err checking TODO 5 years ago
Andy Wang 3f532ae065 writeFrame returns error 5 years ago
Andy Wang a131af3439 Remove unnecessary Len check 5 years ago
Andy Wang cfa0a97edf Rename a test set 5 years ago
Andy Wang 59f2fe04e3 Use normal Read in ReadTLS instead of ReadFull 5 years ago
Andy Wang 4fb1f55e2d Use 64bit frame Seq to prevent nonce reuse 5 years ago
Andy Wang 2006e5971a Refactor frameSorter and datagramBuffer under one interface 5 years ago
Andy Wang c3ff3f5d1a Fix the weird nil pointer again 5 years ago
Andy Wang bbb0d35e80 Remove conns from map once switchboard.CloseAll is called 5 years ago
Andy Wang 8b99e419b3 Check buffer length for datagramBuffer.Read() in case the datagram is larger than the buffer 5 years ago
Andy Wang 46c02d17f4 Refactor InitState 5 years ago
Andy Wang 87a7684e10 More comments 5 years ago
Andy Wang dd4a1769d0 Refactor new session authorisation 5 years ago
Andy Wang eabe113547 Add Stream Timeout 5 years ago
Andy Wang ba467e8a32 Only store stream in map after Accept 5 years ago
Andy Wang c8184fc1d2 Switch back to juju/ratelimit 5 years ago
Andy Wang cf1f1ccf16 Add some tests 5 years ago
Andy Wang 57255fdeb2 Fail to parse ClientHello if the TLS record layer Content Type and versions are wrong 5 years ago
Andy Wang 0e0a3314c9 Add server TLS parse test 5 years ago
Andy Wang 812ca1af99 Unexport some client.State fields 5 years ago
Andy Wang b98a74f49b Refactor client ClientHello composition 5 years ago
Andy Wang b5c6d7fedc Change touchUp function signature 5 years ago
Andy Wang 52796ad0b1 recvDataFromRemote returns err 5 years ago
Andy Wang c276f504b5 Use ENUM constants for encryption methods 5 years ago
Andy Wang e9a3c29429 Add some tests 5 years ago
Andy Wang e28df86a55 Move Unordered field around 5 years ago
Andy Wang c1b1d5d8ba Fix accidentally removed tx qos 5 years ago
Andy Wang 44a09219f7 Experimental support for UDP 5 years ago
Andy Wang c19c43f6e8 Server side UDP to proxy server 5 years ago
Andy Wang c36ec04ce5 Add unordered mode 5 years ago
Andy Wang 52fac535e3 Fix nil pointer with ClientInfo 5 years ago
Andy Wang 8967819830 Fix accidentally removed tx qos 5 years ago
Qian Wang f65a46f4a9 Remove unnecessary state variable IsAdmin 5 years ago
Qian Wang 58cbb73f0f Refactor return value of decryption 5 years ago
Qian Wang 71e48a1947 Refactor switchboard configuration and add unordered option 5 years ago
Qian Wang cb672a99de Refactor session configuration 5 years ago
Qian Wang abc83a9190 Potential fix to an edge case nil pointer 5 years ago
Qian Wang ea5bb44b0a Add and edit some tests 5 years ago
Qian Wang 82fe177c24 Change how timestamp's validity is checked 5 years ago
Qian Wang fc9f227ccf stream.Write now returns the correct amount of data written 5 years ago
Qian Wang 572fe8486a Rename a variable and modify a test 5 years ago
Qian Wang 586cc5ebb6 Optimise deobfs 5 years ago
Qian Wang e3de2b9852 Fix a potential make len<0 5 years ago
Qian Wang b7549c0664 Fix a potential nil pointer 5 years ago
Qian Wang e244340885 Modify some tests 5 years ago
Qian Wang d99b4009b2 Differentiate concrete types of LimitedValve and UnlimitedValve to avoid unnecessary atomic.AddUint64 since it has non-trivial overhead on embedded systems 5 years ago
Qian Wang e7aa4cd04b Fix a stuck mutex 5 years ago
Qian Wang ae4fc917b6 Let the server send a mock encrypted certificate after ChangeCipherSuite to imitate real behaviour more closely 5 years ago
Qian Wang 81f233c226 Update obfs_test 5 years ago
Qian Wang acb999ee64 Force aead key sizes as 32 bytes due to chacha20-poly1305 5 years ago
Qian Wang 581c2332d1 Fix obfs_test as it wasn't really testing encryptionMethod other than aes-gcm 5 years ago
Qian Wang 1d878b3adb Use AEAD to encrypt session key in ServerHello to provide authentication of the identity of the server 5 years ago
Qian Wang 623ca55ab5 Add ecdh test 5 years ago
Qian Wang 3002c87a49 Fix a server crashing null pointer 5 years ago
Qian Wang e15536d7c7 Refactor TLS handshake 5 years ago
Qian Wang 3dc4c6fb3f Add more trace logs 5 years ago
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 5 years ago
Qian Wang fac381dbca Refactor switchboard 5 years ago