61 lines
2.1 KiB
C
61 lines
2.1 KiB
C
/* Copyright (c) 2017 - 2022 LiteSpeed Technologies Inc. See LICENSE. */
|
|
#ifndef LSQUIC_FULL_CONN_H
|
|
#define LSQUIC_FULL_CONN_H
|
|
|
|
struct lsquic_conn;
|
|
struct lsquic_engine_public;
|
|
|
|
struct lsquic_conn *
|
|
lsquic_gquic_full_conn_client_new (struct lsquic_engine_public *,
|
|
unsigned versions,
|
|
unsigned flags /* Only FC_SERVER and FC_HTTP */,
|
|
const char *hostname, unsigned short max_packet_size,
|
|
int is_ipv4,
|
|
const unsigned char *sess_resume, size_t sess_resume_len);
|
|
|
|
struct lsquic_conn *
|
|
lsquic_ietf_full_conn_client_new (struct lsquic_engine_public *,
|
|
unsigned versions,
|
|
unsigned flags /* Only FC_SERVER and FC_HTTP */,
|
|
const char *hostname, unsigned short base_plpmtu, int is_ipv4,
|
|
const unsigned char *sess_resume, size_t,
|
|
const unsigned char *token, size_t, void* peer_ctx);
|
|
|
|
typedef struct lsquic_conn *
|
|
(*server_conn_ctor_f) (struct lsquic_engine_public *,
|
|
unsigned flags /* Only FC_SERVER and FC_HTTP */,
|
|
struct lsquic_conn *mini_conn);
|
|
|
|
struct lsquic_conn *
|
|
lsquic_gquic_full_conn_server_new (struct lsquic_engine_public *,
|
|
unsigned flags /* Only FC_SERVER and FC_HTTP */,
|
|
struct lsquic_conn *mini_conn);
|
|
|
|
struct lsquic_conn *
|
|
lsquic_ietf_full_conn_server_new (struct lsquic_engine_public *,
|
|
unsigned flags /* Only FC_SERVER and FC_HTTP */,
|
|
struct lsquic_conn *mini_conn);
|
|
|
|
struct dcid_elem
|
|
{
|
|
/* This is never both in the hash and on the retirement list */
|
|
union {
|
|
struct lsquic_hash_elem hash_el;
|
|
TAILQ_ENTRY(dcid_elem) next_to_ret;
|
|
} de_u;
|
|
#define de_hash_el de_u.hash_el
|
|
#define de_next_to_ret de_u.next_to_ret
|
|
lsquic_cid_t de_cid;
|
|
unsigned de_seqno;
|
|
enum {
|
|
DE_SRST = 1 << 0, /* de_srst is set */
|
|
DE_ASSIGNED = 1 << 1, /* de_cid has been assigned to a path */
|
|
} de_flags;
|
|
unsigned char de_srst[IQUIC_SRESET_TOKEN_SZ];
|
|
};
|
|
|
|
int
|
|
lsquic_gquic_full_conn_srej (struct lsquic_conn *);
|
|
|
|
#endif
|