Commit Graph

60 Commits

Author SHA1 Message Date
Simone Bordet 90c2a1e6e8
Merged branch 'jetty-10.0.x' into 'jetty-11.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2022-02-03 11:28:42 +01:00
Ludovic Orban 9d3e21365f #7529 upgrade quiche native lib to version 0.11.0
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-02-03 10:46:20 +01:00
Joakim Erdfelt be58156c77
Happy New Year 2022 (#7460)
Signed-off-by: Joakim Erdfelt <joakim.erdfelt@gmail.com>
2022-01-27 10:42:43 -06: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 2de20c3520
Merged branch 'jetty-10.0.x' into 'jetty-11.0.x'.
Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 10:00:26 +01:00
Simone Bordet 7811f40c67 Issue #6728 - QUIC and HTTP/3
Split the http3 module, introducing the jna and quiche modules with their versions and licenses.
Updated project to reference the new groupId of the quiche binaries.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 578ae30311 Issue #6728 - QUIC and HTTP/3
Added http3 Jetty module and distribution test.
Implemented simple logic to send the Alt-Svc header in HTTP/2 responses.
Updated JNA dependency to use jna-jpms.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban 279eb5a39e Issue #6728 - QUIC and HTTP/3
change quiche native dependency to released version
2021-12-20 09:33:38 +01:00
Olivier Lamy 362458e145 remove native libraries and use external project
Signed-off-by: Olivier Lamy <oliver.lamy@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 5f5312ed55 Issue #6728 - QUIC and HTTP/3
- Larger timeout for file upload test.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban 003041fcc8 Issue #6728 - QUIC and HTTP/3
- re-order native helper static loader
2021-12-20 09:33:38 +01:00
Ludovic Orban 8ad5dd74c9 Issue #6728 - QUIC and HTTP/3
- JNA seems to require the module to be wide open
2021-12-20 09:33:38 +01:00
Ludovic Orban e31e46b315 Issue #6728 - QUIC and HTTP/3
- add mac amd64/arm64 and windows amd64 native lib
2021-12-20 09:33:38 +01:00
Simone Bordet a587b42ba7 Issue #6728 - QUIC and HTTP/3
- Trying to replicate test failures.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban d0af388ab4 Issue #6728 - QUIC and HTTP/3
- refactor resource scopes and memory segments usage
2021-12-20 09:33:38 +01:00
Ludovic Orban d2e76b077b Issue #6728 - QUIC and HTTP/3
- commonalize quiche constants across bindings
2021-12-20 09:33:38 +01:00
Ludovic Orban f0eb26533a Issue #6728 - QUIC and HTTP/3
- foreign: delete native lib copy on exit
2021-12-20 09:33:38 +01:00
Simone Bordet a234c7183a Issue #6728 - QUIC and HTTP/3
- Fixed missing <release>17</release> element.
- Fixed --add-opens option in Surefire to run the tests.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet ec942f76bb Issue #6728 - QUIC and HTTP/3
- Renamed Panama/JDK to Foreign/Incubator.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban 41a2e785a9 Issue #6728 - QUIC and HTTP/3
- use proper parent pom
2021-12-20 09:33:38 +01:00
Ludovic Orban d90ce8327b Issue #6728 - QUIC and HTTP/3
- use proper constant
2021-12-20 09:33:38 +01:00
Ludovic Orban 7df5bbc61b Issue #6728 - QUIC and HTTP/3
- add windows and mac binding support
2021-12-20 09:33:38 +01:00
Simone Bordet eb8444e2c2 Issue #6728 - QUIC and HTTP/3
- Incremented test timeouts.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 6aedfe52f1 Issue #6728 - QUIC and HTTP/3
- Fixed HttpChannelOverHTTP3 input reading.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 44132b966d Issue #6728 - QUIC and HTTP/3
- Fixed 100 Continue handling.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet 40aba07e33 Issue #6728 - QUIC and HTTP/3
- More work on making HTTP semantic layer work on top of HTTP/3.
- Various fixes and improvement to HTTP client transport tests.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet ae15c5cc63 Issue #6728 - QUIC and HTTP/3
- Improved logging in QuicheConnection.
- Incremented timeout for echo test in case of large content.

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 4eaff8e880 Issue #6728 - QUIC and HTTP/3
- Moved ExecutionStrategy from ServerQuicConnection to QuicConnection.
  For the server the produced task is declared as BLOCKING, but for the
  client the produced task is NON_BLOCKING.
- Fixed race condition in QuicSession.process(...).
- Updated quic-quiche pom.xml.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Ludovic Orban 336f39c73e WIP: reworking H3 channel impl + workaround quiche bug by using CUBIC congestion control
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
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 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 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 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
Ludovic Orban 49dc5617ac cleanup jna mappings
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Simone Bordet b93436d0e8 Issue #6728 - QUIC and HTTP/3
- Fixed charset encoding handling.

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
Ludovic Orban b09191d2f8 Fix application protocol to make it work with utf8
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
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
Ludovic Orban 161f8e4f82 Upgrade to quiche 0.10.0
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
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
Ludovic Orban 8bf9227db2 add low-level quiche tests
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
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
Ludovic Orban a092078668 replace synchronized keyword with AutoLock
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
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
Ludovic Orban 59664ecaf6 fix IPv6
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00
Ludovic Orban a7a44f0d67 rename methods to get congestion window capacity
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2021-12-20 09:33:38 +01:00