40 QuicConnection(
QuicConnectionManager& manager,
const ngtcp2_cid& client_dcid,
const ngtcp2_cid& client_scid,
const ngtcp2_cid& server_scid,
const sockaddr_in& remote_addr, SSL_CTX* ssl_ctx);
49 void process_packet(
const uint8_t* data,
size_t datalen,
const sockaddr_in& remote_addr);
63 sockaddr_in local_addr_;
64 sockaddr_in remote_addr_;
65 ngtcp2_conn* conn_{
nullptr};
67#if defined(USE_NGTCP2_CRYPTO_OSSL)
68 ngtcp2_crypto_ossl_ctx* tls_ctx_ =
nullptr;
70 ngtcp2_crypto_conn_ref conn_ref_{};
72 std::unique_ptr<QuicHttp3Session> h3_session_;
74 ngtcp2_tstamp get_timestamp()
const;
75 bool init_ssl(SSL_CTX* ssl_ctx);
77 static int on_handshake_completed(ngtcp2_conn *conn,
void *user_data);
78 static void rand_cb(uint8_t *dest,
size_t destlen,
const ngtcp2_rand_ctx *rand_ctx);
79 static int get_new_connection_id_cb(ngtcp2_conn *conn, ngtcp2_cid *cid, uint8_t *token,
size_t cidlen,
void *user_data);
80 static int get_path_challenge_data_cb(ngtcp2_conn *conn, uint8_t *data,
void *user_data);
81 static int on_recv_stream_data(ngtcp2_conn *conn, uint32_t flags, int64_t stream_id, uint64_t offset,
const uint8_t *data,
size_t datalen,
void *user_data,
void *stream_user_data);
82 static int on_get_new_connection_id(ngtcp2_conn *conn, ngtcp2_cid *cid, uint8_t *token,
size_t cidlen,
void *user_data);
void process_packet(const uint8_t *data, size_t datalen, const sockaddr_in &remote_addr)
Processes an incoming QUIC packet.
Definition QuicConnection.cpp:120