Commit Graph

36590 Commits

Author SHA1 Message Date
Andrew Dinh dad45ea769 Adds a new demo blocking QUIC server for use with the existing demo QUIC clients
Remove util/quicserver.c

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25465)
2025-02-17 11:27:33 -05:00
Matt Caswell 3a75cf8d9c 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)
2025-02-17 11:27:33 -05:00
Matt Caswell ac69d0649a 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)
2025-02-17 11:27:32 -05:00
Viktor Dukhovni f23da50318 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)
2025-02-17 11:27:32 -05:00
Alexandr Nedvedicky 73d7de128b QUIC Concurrency API: Various 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 54fd5e113b 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)
2025-02-17 11:27:32 -05:00
Hugo Landau ccbf3f6ecb 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 62f91f2f25 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)
2025-02-17 11:27:32 -05:00
Hugo Landau b93fb2d177 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 89fa427504 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 269409c75b 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 2c9953bbd3 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 9c1bd44f1d 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 2c70693e92 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 5eecb6b619 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)
2025-02-17 11:27:32 -05:00
Hugo Landau c4d516db6a 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 3896bff051 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 2dae861fe0 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)
2025-02-17 11:27:32 -05:00
Hugo Landau db590923c1 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 960b8449cb 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)
2025-02-17 11:27:32 -05:00
Hugo Landau fa4a8e8871 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 5dade08ed1 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 1c89357d75 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)
2025-02-17 11:27:32 -05:00
Hugo Landau ae26f1eed6 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 6bc47aa65f 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 14516cd5a4 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 5a6898db3a 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)
2025-02-17 11:27:32 -05:00
Hugo Landau 50c7796267 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)
2025-02-17 11:27:32 -05:00
Hugo Landau f75b3d1db6 QUIC APL: Add QUIC Domain SSL Object: Implementation
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
2025-02-17 11:27:32 -05:00
Hugo Landau 907759818e QUIC APL: Add QUIC Domain SSL Object: Basic Definitions
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24971)
2025-02-17 11:27:32 -05:00
Jean-Frederic Clere a31dfb0ee6 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)
2025-02-17 11:27:32 -05:00
Jean-Frederic Clere 73977a0424 Add a demo HTTP3 server using the quic server support and nghttp3
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24749)
2025-02-17 11:27:32 -05:00
Hugo Landau 362cc00d6a QUIC Polling Design: Fix nits
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23455)
2025-02-17 11:27:32 -05:00
Hugo Landau 51771dad69 QUIC Polling Design Document: Rename OSSL_ -> SSL_ for consistency
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23455)
2025-02-17 11:27:32 -05:00
Hugo Landau 1be93781e8 QUIC Polling Design: Move around sections a bit
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23455)
2025-02-17 11:27:32 -05:00
Hugo Landau e0a66263c2 QUIC Polling Design: Add discussion/rethink of event types
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23455)
2025-02-17 11:27:32 -05:00
Hugo Landau 0288567452 QUIC Polling Design: minor fixups
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23455)
2025-02-17 11:27:32 -05:00
Hugo Landau e6f062601b Minor updates
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 8b4b5048ee Minor fixes and hardening
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 20eb1b656b QUIC Server Demo: Use IPv4 only
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 6330a78638 Copyright header
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau e88f03f193 QUIC APL: Make QCTX comments clearer
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau b35712db6c Minor doc fix
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 0723a3ac0c Minor update
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau a55d8b8b71 QUIC APL: Connection acceptance is an I/O operation
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 87d474660c QUIC APL: Support SSL_inject_net_dgram for listeners
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 640a32afcf QUIC: Clarify SSL_new_listener API in docs
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 2176e0467e QUIC APL: When creating a default XSO, no further streams can arrive after connection terminastion
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 8df5b725ef Fix markdown
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00
Hugo Landau 05e0eae202 QUIC APL: Ensure incoming stream data can be drained after connection closure
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24037)
2025-02-17 11:27:32 -05:00