Path: blob/main/crypto/openssl/ssl/quic/quic_engine_local.h
48261 views
/*1* Copyright 2023 The OpenSSL Project Authors. All Rights Reserved.2*3* Licensed under the Apache License 2.0 (the "License"). You may not use4* this file except in compliance with the License. You can obtain a copy5* in the file LICENSE in the source distribution or at6* https://www.openssl.org/source/license.html7*/89#ifndef OSSL_QUIC_ENGINE_LOCAL_H10# define OSSL_QUIC_ENGINE_LOCAL_H1112# include "internal/quic_engine.h"13# include "internal/quic_reactor.h"1415# ifndef OPENSSL_NO_QUIC1617/*18* QUIC Engine Structure19* =====================20*21* QUIC engine internals. It is intended that only the QUIC_ENGINE, QUIC_PORT22* and QUIC_CHANNEL implementations be allowed to access this structure23* directly.24*25* Other components should not include this header.26*/27DECLARE_LIST_OF(port, QUIC_PORT);2829struct quic_engine_st {30/* All objects in a QUIC event domain share the same (libctx, propq). */31OSSL_LIB_CTX *libctx;32const char *propq;3334/*35* Master synchronisation mutex for the entire QUIC event domain. Used for36* thread assisted mode synchronisation. We don't own this; the instantiator37* of the engine passes it to us and is responsible for freeing it after38* engine destruction.39*/40CRYPTO_MUTEX *mutex;4142/* Callback used to get the current time. */43OSSL_TIME (*now_cb)(void *arg);44void *now_cb_arg;4546/* Asynchronous I/O reactor. */47QUIC_REACTOR rtor;4849/* List of all child ports. */50OSSL_LIST(port) port_list;5152/* Inhibit tick for testing purposes? */53unsigned int inhibit_tick : 1;54};5556# endif5758#endif596061