forked from quic-go/quic-go
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
merge histeria quic-go #1
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ackhandler: unexport the packet struct
This more closely matches what the connection does.
* docs: add detailed description of the quic package * Apply suggestions from code review Co-authored-by: Prithvi Shahi <shahi.prithvi@gmail.com> * some more README improvements --------- Co-authored-by: Prithvi Shahi <shahi.prithvi@gmail.com>
…uic-go#3900) * - fix 3898 * fix gofumpt * - refactoring: inline serveListener in ServeListener - use ServeListener in s.serveConn - updated doc for the returned error --------- Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* close Transport: check for possibly uninitialized fields * close Transport: close Conn, as conn might not be initialized * close Transport: add test case
* add context to ReceiveMessage * add newlines --------- Co-authored-by: Marten Seemann <martenseemann@gmail.com>
…#3931) * Remove conn from multiplexer when (*Transport).init fails * Transport: AddConn to multiplexer directly before start listening * Update transport_test.go --------- Co-authored-by: Marten Seemann <martenseemann@gmail.com>
* automatically add date header if not already set * improve comment for Date header --------- Co-authored-by: Marten Seemann <martenseemann@gmail.com>
quic-go#3949) The UDP send and receive buffer is now increased when calling OptimizeConn.
* implement FlushError interface for http3 response writer * move where to log flush error
…et (quic-go#4276) Currently not used, but this is useful when crafting Initial packets sent from the client. No functional change expected.
…o#4284) Instead, expose the FrameParser struct. This allows us to embed it directly into the connection struct, avoiding a pointer indirection.
This package can be useful outside of quic-go. We're not making any API guarantees at this point.
Fortunately, qtls is a thing of the past.
…go#4288) * ackhandler: don't delay ACKs for Initial and Handshake packets * ackhandler: embed the receivedPacketHistory
* wire: optimize generation of Version Negotiation packets * protocol: optimize adding greased version numbers
Events are appended to a channel, which is able to handle concurrect writes.
…4300) The qlog writer simply records events, puts them into a channel, and consumes these events in a separate Go routine (by serializing them). The ConnectionTracer is the one generating those events.
* logging: add a Close function to the Tracer * close the Tracer when the Transport is closed
…on (quic-go#4311) * handshake: validate HKDF-Expand-Label against crypto/tls implementation * handshake: add a benchmark for HKDF-Expand-Label
* avoid lock contention when accepting new connections The server used to hold the packet handler map's lock while creating the connection struct for a newly accepted connection. This was intended to make sure that no two connections with the same Destination Connection ID could be created. This is a corner case: it can only happen if two Initial packets with the same Destination Connection ID are received at the same time. If the second one is received after the first one has already been processed, it would be routed to the first connection. We don't need to optimized for this corner case. It's ok to create a new connection in that case, and immediately close it if this collision is detected. * only pass 0-RTT to the connection if it was actually accepted
…quic-go#4314) The slice will be allocated when STREAM frames are appended. By not preallocating it is made sure that the slice is only created in cases where STREAM frames are actually sent in this packet.
…ion (quic-go#4322) This technically violates the stateless reset handling logic described in RFC 9000 section 10.3.1 (see comment), but it saves one map lookup in the hot path.
…uic-go#4319) This prevents a race condition when the underlying ClientSessionCache provided by the application returns the same session ticket for multiple connections. Reusing session tickets is explicitly recommended against by both RFC 8446 and RFC 9001, but it's not forbidden. This fix only benefits applications that compromise their users' privacy by reusing session tickets.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.