SSL_NEW_DOMAIN(3ossl)
β¨ NAME β¨
SSL_new_domain, SSL_is_domain, and SSL_get0_domain β the SSL object interface for managing QUIC event domains. Bestie, this is the SSL_new_domain(3ossl) page and it's lowkey iconic.
π SYNOPSIS π
#include <openssl/ssl.h>
SSL *SSL_new_domain(SSL_CTX *ctx, uint64_t flags);
int SSL_is_domain(SSL *ssl);
SSL *SSL_get0_domain(SSL *ssl);
π DESCRIPTION π
Okay so SSL_new_domain() creates a brand-new QUIC event domain, and it's represented as an SSL object. That's what we call a QUIC domain SSL object (QDSO, iykyk). The whole concept of a QUIC event domain is discussed in detail in openssl-quic-concurrency(7).
The flags argument to SSL_new_domain() specifies a set of domain flags. If the flags argument to SSL_new_domain() does not specify one of the flags SSL_DOMAIN_FLAG_SINGLE_THREAD, SSL_DOMAIN_FLAG_MULTI_THREAD, or SSL_DOMAIN_FLAG_THREAD_ASSISTED, then the domain flags configured on the SSL_CTX are inherited as a default, and any other flags in flags are added to the set of inherited flags. Otherwise, the domain flags in flags are used. See SSL_CTX_set_domain_flags(3) for details of the available domain flags and how they can be configured on an SSL_CTX.
A QUIC domain SSL object can be managed in the same way as any other SSL object, in that it can be refcounted and freed normally. A QUIC domain SSL object is the parent of a number of child objects such as QUIC listener SSL objects. Once a QUIC domain SSL object has been created, a listener can be created under it using SSL_new_listener_from(3).
SSL_is_domain() returns 1 if an SSL object is a QUIC domain SSL object.
SSL_get0_domain() obtains a pointer to the QUIC domain SSL object in an SSL object hierarchy (if any).
All SSL objects in a QUIC event domain use the same domain flags, and the domain flags for a QUIC domain cannot be changed after construction.
π¨ bestie, fr fr: the domain flags for a QUIC domain cannot be changed after construction. periodt.
πΈ Supported Operations πΈ
A QUIC domain SSL object exists to contain other QUIC SSL objects and provide unified event handling β it's giving main character energy for the whole domain. As such, it supports only the following operations:
- Standard reference counting and free operations, such as
SSL_up_ref(3)andSSL_free(3); - Event processing and polling enablement APIs such as
SSL_handle_events(3), andSSL_get_event_timeout(3). - Creating listeners under the domain using
SSL_new_listener_from(3).
The basic workflow of using a domain object is as follows:
- Create a new domain object using
SSL_new_domain()using anSSL_CTXwhich uses a supportedSSL_METHOD(such asOSSL_QUIC_server_method(3)); - Create listeners under the domain using
SSL_new_listener_from(3).
Refer to SSL_new_listener_from(3) for details on using listeners.
Currently, domain SSL objects are only supported for QUIC usage via any QUIC SSL_METHOD.
π RETURN VALUES π
SSL_new_domain()β returns a new domain SSL object orNULLon failure.SSL_is_domain()β returns0or1depending on the type of the SSL object on which it is called.SSL_get0_domain()β returns an SSL object pointer (potentially to the same object on which it is called) orNULL.
π SEE ALSO π
SSL_new_listener_from(3)SSL_handle_events(3)SSL_CTX_set_domain_flags(3)openssl-quic-concurrency(7)
π°οΈ HISTORY π°οΈ
These functions were added in OpenSSL 3.5.
π COPYRIGHT π
Copyright 2024-2025 The OpenSSL Project Authors. All Rights Reserved.
Licensed under the Apache License 2.0 (the "License"). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <https://www.openssl.org/source/license.html>.
mwah π this little page is from 3.5.0, dated 2026-09-25, and the footer tag is SSL_NEW_DOMAIN(3ossl). bye bestie, slay responsibly π«Ά
π¦ where this page comes from
- opensuse-leap 16.0: openssl-3-doc 3.5.0-160000.11.1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms