99 Commits

Author SHA1 Message Date
Joakim Erdfelt
c2bc103cb9
Merge Release 10.0.10 back into jetty-10.0.x (#8180)
* Updating to version 10.0.11-SNAPSHOT
2022-06-21 14:41:41 +02: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
Ludovic Orban
f7bbff2cfd Upgrade to quiche version 0.12.0
Signed-off-by: Ludovic Orban <lorban@bitronix.be>
2022-03-02 13:30:04 +01:00
Ning Sun
65a47a369d
Turn off mutual TLS for quic-server by default
Signed-off-by: Ning Sun <sunng@protonmail.com>
2022-02-13 21:36:38 +08: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
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
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
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
ea3f2703f0 Issue #6728 - QUIC and HTTP/3
Made ServerProtocolSession's producer task of type EITHER.
This is necessary to allow for example DATA frames to be
processed to unblock blocked reads.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
e81c3ead7a Issue #6728 - QUIC and HTTP/3
Made QuicConnection's fillable callback of type EITHER.
This is necessary when there are no threads available,
because we still want to read from the network and feed
Quiche so that it can progress with respect to packet
acknowledgments and flow control updates.

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
Simone Bordet
3d6578deee Issue #6728 - QUIC and HTTP/3
Updates after merge of #7100.

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

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
64296f76f1 Issue #6728 - QUIC and HTTP/3
- Split Stream in Stream.Client and Server.Server, so segregate client-specific actions and events.
Now, only Stream.Server has method respond(), and only Stream.Client.Listener has method onResponse().
- Improved javadocs, and updated javadoc module to create javadocs for both http3 and quic modules.

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
4d778b1aff Issue #6728 - QUIC and HTTP/3
- Fixed session failure notification.
Now the failure is propagated to listeners.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +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
b19c135f46 Issue #6728 - QUIC and HTTP/3
- Fixed max streams semantic for HTTP/3.
It's not *concurrent* streams but *cumulative* streams that are limited.
Fixed MultiplexConnectionPool to take that into account with the introduction
of ConnectionPool.MaxUsable.

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
fd118a4766 Issue #6728 - QUIC and HTTP/3
- Fixed end of stream detection.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
521a0adf0e Issue #6728 - QUIC and HTTP/3
- Improved close mechanism.
Now error and reason are propagated at the HTTP/3 level, in case e.g. applications want to take statistics about the error codes.
- Improved buffer handling to be sure they are properly released back to the pool.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00
Simone Bordet
85a13cfc20 Issue #6728 - QUIC and HTTP/3
- Fixed buffer release to avoid leaks.

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
baab1a15b9 Issue #6728 - QUIC and HTTP/3
- More 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
aac4232e20 Issue #6728 - QUIC and HTTP/3
- More 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
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
Ludovic Orban
b937a31b72 Issue #6728 - QUIC and HTTP/3
- Renamed methods & variables for clarity
 - Tightened code visibility
2021-12-20 09:33:38 +01:00
Simone Bordet
3585b408b7 Issue #6728 - QUIC and HTTP/3
- Made sure Connection.Listeners are properly notified.
- Fixed removal of QuicStreamEndPoints from QuicSession in case of successful request/response exchanges.
- Avoid spurious wakeups by shutting down input after receiving a frame with last=true.
- Updated HttpClient transport tests to work with UNIX_DOMAIN.
- Started updating HttpClient transport tests to work with HTTP/3.

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
8e81c80e1e Issue #6728 - QUIC and HTTP/3
- Added timeouts for QUIC tests.

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
Simone Bordet
5ca88d3231 Issue #6728 - QUIC and HTTP/3
- Removed dataFrame queue in HTTP3StreamConnection.
- Made readData() idempotent.

Signed-off-by: Simone Bordet <simone.bordet@gmail.com>
2021-12-20 09:33:38 +01:00