Commit Graph

75 Commits

Author SHA1 Message Date
Lachlan Roberts 15e32ca3ea Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-7635-QpackDecoderMaxBlockedStreams 2022-05-16 09:59:00 +10:00
Lachlan Roberts ac56b95eba fix checkstyle violation
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-05-13 16:21:07 +10:00
Lachlan Roberts b9689c2f27 add missing licence header
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-05-13 16:15:03 +10:00
Lachlan Roberts 0b00c0628e Issue #7635 - add extra testing for QPACK blocked streams
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-05-13 16:11:15 +10:00
Lachlan Roberts 2e98a26f03 added extra checks in SectionAcknowledgmentTest
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-05-13 13:49:10 +10:00
Lachlan Roberts 8d331964a7 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-7635-QpackDecoderMaxBlockedStreams 2022-05-05 16:12:09 +10:00
Lachlan Roberts b9901bcd47 Merge remote-tracking branch 'origin/jetty-10.0.x' into jetty-10.0.x-qpack-sectionAck 2022-05-05 16:10:36 +10:00
Lachlan Roberts 685d617a1b Issue #7802 - add testing for qpack section acknowledgement
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-05-05 16:09:55 +10:00
Joakim Erdfelt 16420f0181
Set version to `10.0.10-SNAPSHOT` (#7823)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2022-04-03 20:33:44 +10:00
Joakim Erdfelt f079949a35
Merge Release 10.0.9 (#7821)
* Updating to version 10.0.9

* Updating to version 10.0.10
2022-04-02 08:43:44 -05:00
Lachlan Roberts 6143e4358f do not expect section ack for zero required insert count
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-03-30 11:02:30 +11:00
Lachlan Roberts 39ff60f595 Issue #7635 - implement maxBlockedStreams logic in QpackDecoder
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2022-02-28 18:54:40 +11:00
Simone Bordet 55eb982185
Fixes #7625 - HTTP/3 error against www.google.com
Now properly handling QPACK and HTTP/3 settings.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-02-22 11:36:37 +01:00
Simone Bordet a4fda96f49
Updating to version 10.0.9-SNAPSHOT 2022-02-07 12:02:02 +01:00
Simone Bordet 716c7afd8e
Updating to version 10.0.8 2022-02-07 11:34:12 +01:00
Joakim Erdfelt cb127793e5
Happy New Year 2022 (#7459)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2022-01-27 10:42:30 -06:00
Simone Bordet b385cf930e
Issue #6728 - QUIC and HTTP/3
Fixed HTTP/3 POM files.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 10:10:05 +01:00
Simone Bordet a7ec4ff525 Issue #6728 - QUIC and HTTP/3
- Fixed parsing of HEADERS frames.
- Fixed locking in QpackEncoder.
- Fixed creation of QuicStreamEndPoints.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet c879358777 Issue #6728 - QUIC and HTTP/3
- QPACK exceptions now use long instead of int, to be consistent with other error codes.
- Fixed ManagedSelector to count down the stop latches in finally blocks, so that they are always counted down even in case of exceptions.
- Improved exception handling in case of closes.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet ec6ef66b5e Issue #6728 - QUIC and HTTP/3
- Improved javadocs and formatting.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 29385fa095 Issue #6728 - QUIC and HTTP/3
- Optimized generation of HEADERS frames.
- Changed QPACK encoder to not flip the buffer, necessary for the optimization above.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 77d0595191 Issue #6728 - QUIC and HTTP/3
- Implemented better toString() for Instruction implementations.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
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 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
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 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
Lachlan Roberts c044400d80 Implement stream cancellation in HTTP/3 QPACK
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 7fc3faecaf update qpack parseInstructionBuffer name
Signed-off-by: Lachlan Roberts <lachlan@webtide.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 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 eb047aa8a3 Refactor QpackEncoder and QpackDecoder for simplicity.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 746d6848e3 Fix JPMS warning from QpackDecoder
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 6a825df16e Improve javadoc and exception handling for http3-qpack
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 7b2b74045d Add javadoc to public methods on QPACK encoder & decoder.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Simone Bordet f6958de4b2 Issue #6728 - QUIC and HTTP/3
- Fixed control streams, must be unidirectional.
- Initial implementation of events to HTTP/3 APIs.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 63e4f1a074 Improve exceptions from QPACK
Signed-off-by: Lachlan Roberts <lachlan@webtide.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
Lachlan Roberts 4bdcfff94c Cleanups, bug fix and improve testing
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts a95fe3bfb8 Improvements & bug fixes from testing
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 22e513a272 Fix licence header, and checkstyle issues.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 684272e1ae Improve QPACK testing for instruction parsers.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts b2a91fdbaf Remove all synchronization from QpackEncoder & QpackDecoder
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 5cde0ca7c8 QpackEncoder.encode should take buffer to encode into instead of allocating.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 0ccb826532 Filter out connection specific headers for Http3Fields
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 3a6a3e094d Use MetaData instead of HttpFields for QPACK
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 27122c2c91 Fix broken test case EncodeDecodeTest.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts ea70f599bb Refactor QPACK to use an internal package for non API classes.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts f9606770b3 Use calculated header size for QpackEncoder buffer allocation.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00
Lachlan Roberts 191b1af880 Qpack refactoring, testing and bug fixes.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
2021-12-20 09:33:38 +01:00