Hugo Landau [Mon, 13 May 2024 19:20:23 +0000 (20:20 +0100)]
RIO: Amend SSL_poll to support blocking on QUIC objects
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Saša Nedvědický <sashan@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25416)
Hugo Landau [Mon, 13 May 2024 19:20:23 +0000 (20:20 +0100)]
RIO: Add poll builder to support immediate-mode polling API
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Saša Nedvědický <sashan@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25416)
Hugo Landau [Mon, 13 May 2024 19:20:23 +0000 (20:20 +0100)]
QUIC APL: Add support for registering blocking operations to support polling code
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Saša Nedvědický <sashan@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25416)
Hugo Landau [Mon, 13 May 2024 19:20:23 +0000 (20:20 +0100)]
QUIC REACTOR: Add utility for tracking recursive blocking operations
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Saša Nedvědický <sashan@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25416)
Hugo Landau [Mon, 13 May 2024 19:20:23 +0000 (20:20 +0100)]
QUIC REACTOR: Add support for external registration of blocking operations
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Saša Nedvědický <sashan@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25416)
Andrew Dinh [Wed, 11 Sep 2024 10:54:53 +0000 (17:54 +0700)]
Add demo QUIC non-blocking server
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Saša Nedvědický <sashan@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25431)
Matt Caswell [Wed, 9 Oct 2024 10:31:46 +0000 (11:31 +0100)]
Use the reactor from ctx.obj for net read/write desired implementations
The ossl_quic_get_net_write_desired() and
ossl_quic_reactor_net_read_desired() implementations can be used by
listeners. But in that case there is no ctx.qc object present. Instead we
should use the reactor from ctx.obj which will work also for a listener.
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25642)
Matt Caswell [Thu, 12 Sep 2024 14:05:59 +0000 (15:05 +0100)]
Always tick the QUIC_ENGINE regardless of the state of a connection
Just because one connection has not started yet, it does not mean that
we should not tick the QUIC_ENGINE. There may be other connections that do
need ticking.
Reviewed-by: Saša Nedvědický <sashan@openssl.org> Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25452)
Andrew Dinh [Mon, 23 Sep 2024 06:25:24 +0000 (23:25 -0700)]
Add a guide for demo QUIC blocking server
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25361)
Matt Caswell [Fri, 13 Sep 2024 15:25:46 +0000 (16:25 +0100)]
Remove an obsolete comment
The comment is no longer accurance so it can be removed
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25457)
Matt Caswell [Fri, 13 Sep 2024 15:00:22 +0000 (16:00 +0100)]
Simplify the QUIC time override handling
Centralise the storage of the override in the QUIC_ENGINE rather than in
the QUIC_CONNECTION. We can now set the override on any type of QUIC SSL
object as needed.
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25457)
Viktor Dukhovni [Wed, 11 Sep 2024 09:44:43 +0000 (19:44 +1000)]
Handle a couple of NULL QUIC ctx.qc values
Now that we also QUIC server (listener) handles, we may have a NULL quic
connection (ctx.qc), and so need to either return early or handle the
NULL `qc` gracefully.
Reviewed-by: Sasa Nedvedicky <sashan@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25432)
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Mon, 13 May 2024 18:22:10 +0000 (19:22 +0100)]
Minor fix for Windows
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Mon, 29 Apr 2024 11:36:21 +0000 (12:36 +0100)]
QUIC RADIX: Test domain functions as well
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Mon, 29 Apr 2024 11:36:01 +0000 (12:36 +0100)]
QUIC: Add basic domain flags test
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Mon, 29 Apr 2024 11:35:39 +0000 (12:35 +0100)]
Assorted bugfixes
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Mon, 29 Apr 2024 09:52:32 +0000 (10:52 +0100)]
Doc fixes
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Mon, 29 Apr 2024 09:24:30 +0000 (10:24 +0100)]
Allow use of socketpair, WSASocketA
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Mon, 29 Apr 2024 09:20:39 +0000 (10:20 +0100)]
Minor fixes
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Mon, 29 Apr 2024 09:13:56 +0000 (10:13 +0100)]
RIO NOTIFIER: Fix symbol usage
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 12:52:26 +0000 (13:52 +0100)]
QUIC OBJ: Require blocking support in the domain flags to use blocking mode
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 09:04:25 +0000 (10:04 +0100)]
make update
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 12:22:49 +0000 (13:22 +0100)]
QUIC: Update listener documentation
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 12:20:44 +0000 (13:20 +0100)]
QUIC: Add documentation on concurrency model
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 12:17:06 +0000 (13:17 +0100)]
QUIC: Document SSL_new_domain, etc.
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 12:01:44 +0000 (13:01 +0100)]
QUIC APL: Refine domain flag handling
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 11:47:18 +0000 (12:47 +0100)]
QUIC CHANNEL: Notify other threads when needed
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 11:46:34 +0000 (12:46 +0100)]
QUIC REACTOR: Allow ticks to schedule notifications of other threads
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 11:26:40 +0000 (12:26 +0100)]
QUIC ENGINE: Notify when ticking
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 11:24:22 +0000 (12:24 +0100)]
QUIC REACTOR: Inter-thread notification
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 10:02:11 +0000 (11:02 +0100)]
QUIC APL: Default domain flags
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 09:53:54 +0000 (10:53 +0100)]
QUIC REACTOR: Integrate RIO NOTIFIER
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 09:53:43 +0000 (10:53 +0100)]
RIO: Add OS notifier
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 09:27:14 +0000 (10:27 +0100)]
QUIC APL: Use domain flag to determine thread assisted mode
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Hugo Landau [Wed, 24 Apr 2024 09:24:45 +0000 (10:24 +0100)]
QUIC APL: Add support for configuring domain flags
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
ossl-nghttp3-demo-server.c: Fix compatibility with various clients
Fixes openssl/project#752
Reviewed-by: Viktor Dukhovni <viktor@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24946)
Hugo Landau [Mon, 8 Apr 2024 14:12:24 +0000 (15:12 +0100)]
QUIC RADIX: Fix simple_conn test
Reviewed-by: Neil Horman <nhorman@openssl.org> Reviewed-by: Paul Dale <ppzgs1@gmail.com> Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24064)
Hugo Landau [Thu, 21 Mar 2024 10:47:21 +0000 (10:47 +0000)]
Minor fixes
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)
Hugo Landau [Thu, 21 Mar 2024 10:44:04 +0000 (10:44 +0000)]
Minor doc fix
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)
Hugo Landau [Sun, 10 Mar 2024 00:29:07 +0000 (00:29 +0000)]
QUIC APL: Avoid having a mutex variable where not needed
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)
Hugo Landau [Sun, 10 Mar 2024 00:19:43 +0000 (00:19 +0000)]
QUIC OBJ: Use QUIC_OBJ pointer for parent references
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)
Hugo Landau [Sat, 9 Mar 2024 12:16:51 +0000 (12:16 +0000)]
Post-rebase fixes
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)
Hugo Landau [Mon, 5 Feb 2024 17:22:53 +0000 (17:22 +0000)]
QUIC APL: Fix bug around default XSO handling on server side
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)
Hugo Landau [Mon, 5 Feb 2024 17:32:51 +0000 (17:32 +0000)]
QUIC APL: Fix refcounting for listeners
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)
Hugo Landau [Mon, 5 Feb 2024 16:31:23 +0000 (16:31 +0000)]
QUIC PORT: Allow QUIC_PORT to throw away incoming connections
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)
Hugo Landau [Mon, 5 Feb 2024 16:17:37 +0000 (16:17 +0000)]
QUIC APL: Fix server API bugs discovered during test
Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23334)