aboutsummaryrefslogtreecommitdiff
path: root/include/internal/quic_port.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/internal/quic_port.h')
-rw-r--r--include/internal/quic_port.h192
1 files changed, 0 insertions, 192 deletions
diff --git a/include/internal/quic_port.h b/include/internal/quic_port.h
deleted file mode 100644
index 6a4dde81da9b..000000000000
--- a/include/internal/quic_port.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- * Copyright 2023-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
- */
-#ifndef OSSL_QUIC_PORT_H
-# define OSSL_QUIC_PORT_H
-
-# include <openssl/ssl.h>
-# include "internal/quic_types.h"
-# include "internal/quic_reactor.h"
-# include "internal/quic_demux.h"
-# include "internal/quic_predef.h"
-# include "internal/thread_arch.h"
-
-# ifndef OPENSSL_NO_QUIC
-
-/*
- * QUIC Port
- * =========
- *
- * A QUIC Port (QUIC_PORT) represents a single UDP network socket and contains
- * zero or more subsidiary QUIC_CHANNEL instances, each of which represents a
- * single QUIC connection. All QUIC_CHANNEL instances must belong to a
- * QUIC_PORT.
- *
- * A QUIC port is responsible for managing a set of channels which all use the
- * same UDP socket, and (in future) for automatically creating new channels when
- * incoming connections are received.
- *
- * In order to retain compatibility with QUIC_TSERVER, it also supports a point
- * of legacy compatibility where a caller can create an incoming (server role)
- * channel and that channel will be automatically be bound to the next incoming
- * connection. In the future this will go away once QUIC_TSERVER is removed.
- *
- * All QUIC_PORT instances are created by a QUIC_ENGINE.
- */
-typedef struct quic_port_args_st {
- /* The engine which the QUIC port is to be a child of. */
- QUIC_ENGINE *engine;
-
- /*
- * This callback allows port_new_handshake_layer to pre-create a quic
- * connection object for the incoming channel
- * user_ssl_arg is expected to point to a quic listener object
- */
- SSL *(*get_conn_user_ssl)(QUIC_CHANNEL *ch, void *arg);
- void *user_ssl_arg;
-
- /*
- * This SSL_CTX will be used when constructing the handshake layer object
- * inside newly created channels.
- */
- SSL_CTX *channel_ctx;
-
- /*
- * If 1, this port is to be used for multiple connections, so
- * non-zero-length CIDs should be used. If 0, this port will only be used
- * for a single connection, so a zero-length local CID can be used.
- */
- int is_multi_conn;
-
- /*
- * if 1, this port should do server address validation
- */
- int do_addr_validation;
-} QUIC_PORT_ARGS;
-
-/* Only QUIC_ENGINE should use this function. */
-QUIC_PORT *ossl_quic_port_new(const QUIC_PORT_ARGS *args);
-
-void ossl_quic_port_free(QUIC_PORT *port);
-
-/*
- * Operations
- * ==========
- */
-
-/* Create an outgoing channel using this port. */
-QUIC_CHANNEL *ossl_quic_port_create_outgoing(QUIC_PORT *port, SSL *tls);
-
-/*
- * Create an incoming channel using this port.
- *
- * TODO(QUIC FUTURE): temporary TSERVER use only - will be removed.
- */
-QUIC_CHANNEL *ossl_quic_port_create_incoming(QUIC_PORT *port, SSL *tls);
-
-/*
- * Pop an incoming channel from the incoming channel queue. Returns NULL if
- * there are no pending incoming channels.
- */
-QUIC_CHANNEL *ossl_quic_port_pop_incoming(QUIC_PORT *port);
-
-/* Returns 1 if there is at least one connection incoming. */
-int ossl_quic_port_have_incoming(QUIC_PORT *port);
-
-/*
- * Delete any channels which are pending acceptance.
- */
-void ossl_quic_port_drop_incoming(QUIC_PORT *port);
-
-/*
- * Queries and Accessors
- * =====================
- */
-
-/* Gets/sets the underlying network read and write BIO. */
-BIO *ossl_quic_port_get_net_rbio(QUIC_PORT *port);
-BIO *ossl_quic_port_get_net_wbio(QUIC_PORT *port);
-int ossl_quic_port_set_net_rbio(QUIC_PORT *port, BIO *net_rbio);
-int ossl_quic_port_set_net_wbio(QUIC_PORT *port, BIO *net_wbio);
-SSL_CTX *ossl_quic_port_get_channel_ctx(QUIC_PORT *port);
-
-/*
- * Re-poll the network BIOs already set to determine if their support for
- * polling has changed. If force is 0, only check again if the BIOs have been
- * changed.
- */
-int ossl_quic_port_update_poll_descriptors(QUIC_PORT *port, int force);
-
-/* Gets the engine which this port is a child of. */
-QUIC_ENGINE *ossl_quic_port_get0_engine(QUIC_PORT *port);
-
-/* Gets the reactor which can be used to tick/poll on the port. */
-QUIC_REACTOR *ossl_quic_port_get0_reactor(QUIC_PORT *port);
-
-/* Gets the demuxer belonging to the port. */
-QUIC_DEMUX *ossl_quic_port_get0_demux(QUIC_PORT *port);
-
-/* Gets the mutex used by the port. */
-CRYPTO_MUTEX *ossl_quic_port_get0_mutex(QUIC_PORT *port);
-
-/* Gets the current time. */
-OSSL_TIME ossl_quic_port_get_time(QUIC_PORT *port);
-
-int ossl_quic_port_get_rx_short_dcid_len(const QUIC_PORT *port);
-int ossl_quic_port_get_tx_init_dcid_len(const QUIC_PORT *port);
-
-/* Returns 1 if the port is running/healthy, 0 if it has failed. */
-int ossl_quic_port_is_running(const QUIC_PORT *port);
-
-/*
- * Restores port-level error to the error stack. To be called only if
- * the port is no longer running.
- */
-void ossl_quic_port_restore_err_state(const QUIC_PORT *port);
-
-/* For use by QUIC_ENGINE. You should not need to call this directly. */
-void ossl_quic_port_subtick(QUIC_PORT *port, QUIC_TICK_RESULT *r,
- uint32_t flags);
-
-/* Returns the number of queued incoming channels. */
-size_t ossl_quic_port_get_num_incoming_channels(const QUIC_PORT *port);
-
-/* Sets if incoming connections should currently be allowed. */
-void ossl_quic_port_set_allow_incoming(QUIC_PORT *port, int allow_incoming);
-
-/* Returns 1 if we are using addressed mode on the read side. */
-int ossl_quic_port_is_addressed_r(const QUIC_PORT *port);
-
-/* Returns 1 if we are using addressed mode on the write side. */
-int ossl_quic_port_is_addressed_w(const QUIC_PORT *port);
-
-/* Returns 1 if we are using addressed mode. */
-int ossl_quic_port_is_addressed(const QUIC_PORT *port);
-
-/*
- * Returns the current network BIO epoch. This increments whenever the network
- * BIO configuration changes.
- */
-uint64_t ossl_quic_port_get_net_bio_epoch(const QUIC_PORT *port);
-
-/*
- * Events
- * ======
- */
-
-/*
- * Called if a permanent network error occurs. Terminates all channels
- * immediately. triggering_ch is an optional argument designating
- * a channel which encountered the network error.
- */
-void ossl_quic_port_raise_net_error(QUIC_PORT *port,
- QUIC_CHANNEL *triggering_ch);
-
-# endif
-
-#endif