Commit Graph

76 Commits

Author SHA1 Message Date
Simone Bordet 24840a6ede Issue #6728 - QUIC and HTTP/3
- Updated to 10.0.8-SNAPSHOT.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 3046bd831b Issue #6728 - QUIC and HTTP/3
- Clearly separated QUIC errors from HTTP3 errors.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 9a84bbbb71 Issue #6728 - QUIC and HTTP/3
- Implemented graceful shutdown functionality.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 392d59e9f7 Issue #6728 - QUIC and HTTP/3
- Implemented component hierarchy.
- Implemented dumpability of components.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban 0ea4b3f7c4 implement adaptive execution strategy for simple requests
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Simone Bordet 16a91b04a8 Issue #6728 - QUIC and HTTP/3
- Fixed configuration of QuicConnection.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet cd161b491e Issue #6728 - QUIC and HTTP/3
- Implemented goAway mechanism.
- Implemented idle timeout mechanism.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 3c2feabaf6 Issue #6728 - QUIC and HTTP/3
- Implemented GOAWAY parsing/generation.
- Implemented handling of GOAWAY frames.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet f061cc41db Issue #6728 - QUIC and HTTP/3
- Added more configuration properties.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet c8107539df Issue #6728 - QUIC and HTTP/3
- Implemented stream idle timeouts.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 2b966c04ee Issue #6728 - QUIC and HTTP/3
- Fixed module-info.java canonical ordering.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 06ffd014f9 Issue #6728 - QUIC and HTTP/3
- Implemented support for GREASE for unidirectional and bidirectional streams.
- Implemented UnknownBodyParser.
- Strengthened validation of frames in control and message streams.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet dc889bd7d8 Issue #6728 - QUIC and HTTP/3
- Initial support for closing HTTP/3 sessions and session failure events.
- Enforced HTTP/3 frame sequence.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 2e98931654 Issue #6728 - QUIC and HTTP/3
- Fixed module-info.java for HTTP/3 modules.
- Updated package-info.java for QUIC.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 2d4cb5abbf Issue #6728 - QUIC and HTTP/3
- Avoid sending the last=true flag as a separate QUIC frame.
Apparently Quiche has problem notifying this frame to the receiving peer.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 8b3ae8a661 Issue #6728 - QUIC and HTTP/3
- More javadocs.
- Fixed QuicSession.fill() to also flush() to send to the remote peer the information that the data has been consumed.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 43551487ee Issue #6728 - QUIC and HTTP/3
- Implemented data support.
- Implemented trailer support.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet fcdabeb933 Issue #6728 - QUIC and HTTP/3
- Changed the parsers to emit during parsing, rather than returning the event.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet b42bfa214a Issue #6728 - QUIC and HTTP/3
- Fixed handling of the last frame, exposing a new API in QuicStreamEndPoint.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 7cb32b2d98 Issue #6728 - QUIC and HTTP/3
- Changed HTTP/3 parsers to return the Frame rather than notifying a listener.
- Correctly linked encoder and decoder streams to respectively QpackEncoder and QpackDecoder.
- Fixed buffer release.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 47030b0ce0 Fix licence header in quic StreamType
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 7c75e9c22f Issue #6728 - QUIC and HTTP/3
- Restructured code
- Split implementation of control and message parsing/generation.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 7c09800fe1 Issue #6728 - QUIC and HTTP/3
- Continued implementation of HTTP/3 APIs, frames and parsing, client and server.
- Figured out creation of streams, to support special HTTP/3 streams.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 80d2cee238 Issue #6728 - Fixes for QPACK
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 730ef449a0 Issue #6728 - QUIC and HTTP/3
- Started implementation of HTTP/3 APIs, frames and parsing.
- Started implementation of server-side HTTP/3.
- Reworked the threading model in QUIC to be more efficient and avoid contending on the QPACK encoder/decoder.
- Updated QPACK NBitLongEncoder to support QUIC stream IDs of type long.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban 4b6bcca529 get rid of promoteSession()
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00