QUIC CHANNEL: Remove legacy calls for functionality moved to QUIC_PORT
[openssl.git] / include / internal / quic_port.h
index 75fcaad87fdedec2439bab6b54e37be2b1ab2ea4..0b24338c2fcbbb4c35f88c189b2e17f14b3a6e89 100644 (file)
  * 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.
  */
 typedef struct quic_port_args_st {
     /* All channels in a QUIC event domain share the same (libctx, propq). */
@@ -97,6 +106,10 @@ 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);
 
+/*
+ * Re-poll the network BIOs already set to determine if their support
+ * for polling has changed.
+ */
 int ossl_quic_port_update_poll_descriptors(QUIC_PORT *port);
 
 /* Gets the reactor which can be used to tick/poll on the port. */
@@ -114,6 +127,20 @@ 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);
 
+/* For testing use. While enabled, ticking is not performed. */
+void ossl_quic_port_set_inhibit_tick(QUIC_PORT *port, int inhibit);
+
+/*
+ * Events
+ * ======
+ */
+
+/*
+ * Called if a permanent network error occurs. Terminates all channels
+ * immediately.
+ */
+void ossl_quic_port_raise_net_error(QUIC_PORT *port);
+
 # endif
 
 #endif