Commit Graph

115 Commits (e696b181876d7279e22c573d12a8b1f525c9616c)

Author SHA1 Message Date
name e696b18187 format using goimports 1 year ago
Andy Wang 91106f3c49
Prevent terminal msg from being overwritten to later concurrent writes 3 years ago
Andy Wang a643402e11
Remove redundant lazy allocation 3 years ago
Andy Wang b4d65d8a0e
Use sync.Map for lock free pickRandConn 3 years ago
Andy Wang 8ab0c2d96b
Redo the implementation of switchboard and remove the need for connId 3 years ago
Andy Wang 8dd4ae4bef
Better conform message data length to TLS standards 3 years ago
Andy Wang 439b7f0eb3
Improve encapsulation 3 years ago
Andy Wang 415523f10a
Refactor obfuscate and deobfuscate functions to reduce a layer of indirection 3 years ago
Andy Wang 2f17841f85
Use Compare-And-Swap for atomic booleans indicating session and switchboard closed 3 years ago
Andy Wang 4f34e69006
Use pooled buffer for session closing frame 3 years ago
Andy Wang 881f6e6f9d
Use sync.Pool for obfuscation buffer 3 years ago
Andy Wang 0209bcd977
Fix race condition in steam closing. Fall back to temp buffer allocation 3 years ago
Andy Wang 5c5e9f8c14
Prevent unnecessary allocation in stream closing 3 years ago
Andy Wang 35f41424c9
Use default hashmap to store streams. Avoid allocating a stream object on receiving every single frame 3 years ago
Andy Wang ff503b06a8
Only allocate and copy frame object into sorter heap when necessary (out of order frame) 3 years ago
Andy Wang 5a3f63f101
Reduce allocation of frame objects on receiving data 3 years ago
Andy Wang 104117cafb
Fix one instance of not accessing recvBuf via the getter 3 years ago
Andy Wang 4bc80af9a1
Lazily allocate stream receiving buffer 3 years ago
Andy Wang 42f36b94d3
Achieve zero allocation when writing data through stream 3 years ago
Andy Wang 0473d71bea
Fix overflow in padding length calculation 3 years ago
Andy Wang 61b1031da6
Reduce code duplication in session closing 4 years ago
Andy Wang c0040f20c3
Use time.AfterFunc for session inactivity timeout to reduce goroutine count 4 years ago
Andy Wang 39c06a6e1d
Update comment 4 years ago
Andy Wang 0f6e0d37b5 Rename constants to camel case 4 years ago
Andy Wang 11cfeb4fa3 Improve comments 4 years ago
Andy Wang 735975ef88 Fix typo and remove redundant benchmark 4 years ago
Andy Wang 651854904f Improve comments 4 years ago
Andy Wang e141323c9d Fix obfsBuf being too small on closing frame 4 years ago
Andy Wang f8f02bfc43 Parameterise session inactivity timeout 4 years ago
Andy Wang 0fc27d747e Reduce unnecessary allocation size on stream closing 4 years ago
Andy Wang c7c3f7706d Refactor for clarity and add comments 4 years ago
Andy Wang 3e133090f0 Give more descriptive names to multiplex objects 4 years ago
Andy Wang 9887649b88 Refactor Singleplexing 4 years ago
Andy Wang 1c8903f249 Log repeat stream closing on Debug level 4 years ago
Andy Wang 4a81683e44 Code cleanup and move stuff around 4 years ago
Andy Wang 53c0c6bafe Explicitly allow buf overlap in obfs 4 years ago
Andy Wang e03080d3ba Lock stream sending in all cases 4 years ago
Andy Wang c8368bcc7e Implement stream ReadFrom (flimsy) 4 years ago
Andy Wang f05cc19dbc Assign connId only when needed 4 years ago
Andy Wang 14787a7057 Implement stream WriteTo 4 years ago
Andy Wang 783d016a29 Fix a race on closing stream 4 years ago
Andy Wang 58e0797578 Synchronise stream.Write 4 years ago
Andy Wang 008fd8f0a3 Lazy allocation 4 years ago
Andy Wang e9243a2e9f Framing in Stream.Write to prevent silent short write 4 years ago
Andy Wang a51d45f41a Avoid unnecessary pass by pointer 4 years ago
Andy Wang e41394c83c Set frame size limit through multiplexer 4 years ago
Andy Wang 7bfae8accd Refactor client side transport (breaks server) 4 years ago
Andy Wang 2dc7c6d6e1 Correct switchboard valve's scope 4 years ago
Andy Wang e52daf1a39 Set defaults properly 4 years ago
Andy Wang 545164a300 Make send/receive buffer sizes configurable 4 years ago