libwebsockets
Lightweight C library for HTML5 websockets
Loading...
Searching...
No Matches
lws-quic.h
Go to the documentation of this file.
1/*
2 * libwebsockets - small server side websockets and web server implementation
3 *
4 * Copyright (C) 2010 - 2026 Andy Green <andy@warmcat.com>
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to
8 * deal in the Software without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 * all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22 * IN THE SOFTWARE.
23 */
24
32
40
47
59typedef int (*lws_tls_quic_secret_cb)(struct lws *wsi,
61 const uint8_t *secret, size_t secret_len);
62
73
87lws_tls_quic_advance_handshake(struct lws *wsi, int level,
88 const uint8_t *in, size_t in_len,
89 uint8_t *out, size_t *out_len);
90
99lws_tls_quic_set_transport_parameters(struct lws *wsi, const uint8_t *tp, size_t tp_len);
100
109lws_tls_quic_get_transport_parameters(struct lws *wsi, const uint8_t **tp, size_t *tp_len);
110
119lws_tls_0rtt_status(struct lws *wsi);
120
129lws_rx_is_early_data(struct lws *wsi);
130
136
144lws_tls_quic_migrate_wsi(struct lws *old_wsi, struct lws *new_wsi);
145
156
158 void (*init)(struct lws *nwsi);
159 void (*on_sent)(struct lws *nwsi, size_t bytes);
160 void (*on_ack)(struct lws *nwsi, size_t bytes_acked, lws_usec_t rtt);
161 void (*on_loss)(struct lws *nwsi, size_t bytes_lost);
162 int (*can_send)(struct lws *nwsi, size_t bytes);
163 lws_usec_t (*get_pacing_delay)(struct lws *nwsi, size_t bytes_to_send);
164};
165
168
lws_0rtt_status
Definition lws-quic.h:41
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_get_transport_parameters(struct lws *wsi, const uint8_t **tp, size_t *tp_len)
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_api_test(void)
LWS_VISIBLE LWS_EXTERN enum lws_0rtt_status lws_tls_0rtt_status(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_set_transport_parameters(struct lws *wsi, const uint8_t *tp, size_t tp_len)
lws_tls_quic_secret_type
Definition lws-quic.h:33
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_migrate_wsi(struct lws *old_wsi, struct lws *new_wsi)
LWS_VISIBLE LWS_EXTERN int lws_rx_is_early_data(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN int lws_quic_initiate_key_update(struct lws *wsi)
LWS_VISIBLE LWS_EXTERN_FOR_DATA const struct lws_cc_ops lws_cc_ops_cubic
Definition lws-quic.h:167
int(* lws_tls_quic_secret_cb)(struct lws *wsi, enum lws_tls_quic_secret_type type, const uint8_t *secret, size_t secret_len)
Definition lws-quic.h:59
LWS_VISIBLE LWS_EXTERN_FOR_DATA const struct lws_cc_ops lws_cc_ops_newreno
Definition lws-quic.h:166
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_advance_handshake(struct lws *wsi, int level, const uint8_t *in, size_t in_len, uint8_t *out, size_t *out_len)
LWS_VISIBLE LWS_EXTERN int lws_tls_quic_init(struct lws *wsi, lws_tls_quic_secret_cb cb)
@ LWS_0RTT_STATUS_REJECTED
Definition lws-quic.h:45
@ LWS_0RTT_STATUS_NONE
Definition lws-quic.h:42
@ LWS_0RTT_STATUS_ACCEPTED
Definition lws-quic.h:44
@ LWS_0RTT_STATUS_ATTEMPTED
Definition lws-quic.h:43
@ LWS_TLS_QUIC_SECRET_CLIENT_HANDSHAKE
Definition lws-quic.h:35
@ LWS_TLS_QUIC_SECRET_CLIENT_APPLICATION
Definition lws-quic.h:37
@ LWS_TLS_QUIC_SECRET_SERVER_HANDSHAKE
Definition lws-quic.h:36
@ LWS_TLS_QUIC_SECRET_CLIENT_EARLY
Definition lws-quic.h:34
@ LWS_TLS_QUIC_SECRET_SERVER_APPLICATION
Definition lws-quic.h:38
#define LWS_EXTERN_FOR_DATA
#define LWS_EXTERN
int64_t lws_usec_t
unsigned char uint8_t
#define LWS_VISIBLE
int(* can_send)(struct lws *nwsi, size_t bytes)
Definition lws-quic.h:162
void(* init)(struct lws *nwsi)
Definition lws-quic.h:158
lws_usec_t(* get_pacing_delay)(struct lws *nwsi, size_t bytes_to_send)
Definition lws-quic.h:163
void(* on_loss)(struct lws *nwsi, size_t bytes_lost)
Definition lws-quic.h:161
void(* on_ack)(struct lws *nwsi, size_t bytes_acked, lws_usec_t rtt)
Definition lws-quic.h:160
void(* on_sent)(struct lws *nwsi, size_t bytes)
Definition lws-quic.h:159