mirror of
https://gitea.invidious.io/iv-org/litespeed-quic.git
synced 2024-08-15 00:53:43 +00:00
Latest changes
- [API Change] lsquic_engine_connect() returns pointer to the connection object. - [API Change] Add lsquic_conn_get_engine() to get engine object from connection object. - [API Change] Add lsquic_conn_status() to query connection status. - [API Change] Add add lsquic_conn_set_ctx(). - [API Change] Add new timestamp format, e.g. 2017-03-21 13:43:46.671345 - [OPTIMIZATION] Process handshake STREAM frames as soon as packet arrives. - [OPTIMIZATION] Do not compile expensive send controller sanity check by default. - [OPTIMIZATION] Add fast path to gquic_be_gen_reg_pkt_header. - [OPTIMIZATION] Only make squeeze function call if necessary. - [OPTIMIZATION] Speed up Q039 ACK frame parsing. - [OPTIMIZATION] Fit most used elements of packet_out into first 64 bytes. - [OPTIMIZATION] Keep track of scheduled bytes instead of calculating. - [OPTIMIZATION] Prefetch next unacked packet when processing ACK. - [OPTIMIZATION] Leverage fact that ACK ranges and unacked list are. ordered. - [OPTIMIZATION] Reduce function pointer use for STREAM frame generation - Fix: reset incoming streams that arrive after we send GOAWAY. - Fix: delay client on_new_conn() call until connection is fully set up. - Fixes to buffered packets logic: splitting, STREAM frame elision. - Fix: do not dispatch on_write callback if no packets are available. - Fix WINDOW_UPDATE send and resend logic. - Fix STREAM frame extension code. - Fix: Drop unflushed data when stream is reset. - Switch to tracking CWND using bytes rather than packets. - Fix TCP friendly adjustment in cubic. - Fix: do not generate invalid STOP_WAITING frames during high packet loss. - Pacer fixes.
This commit is contained in:
parent
7edaabaafe
commit
bfc7bfd842
46 changed files with 1140 additions and 547 deletions
|
@ -476,10 +476,10 @@ lsquic_engine_new (unsigned lsquic_engine_flags,
|
|||
* If `max_packet_size' is set to zero, it is inferred based on `peer_sa':
|
||||
* 1350 for IPv6 and 1370 for IPv4.
|
||||
*/
|
||||
int
|
||||
lsquic_conn_t *
|
||||
lsquic_engine_connect (lsquic_engine_t *, const struct sockaddr *peer_sa,
|
||||
void *peer_ctx, const char *hostname,
|
||||
unsigned short max_packet_size);
|
||||
void *peer_ctx, lsquic_conn_ctx_t *conn_ctx,
|
||||
const char *hostname, unsigned short max_packet_size);
|
||||
|
||||
/**
|
||||
* Pass incoming packet to the QUIC engine. This function can be called
|
||||
|
@ -734,6 +734,10 @@ lsquic_conn_get_stream_by_id (lsquic_conn_t *c, uint32_t stream_id);
|
|||
lsquic_cid_t
|
||||
lsquic_conn_id (const lsquic_conn_t *c);
|
||||
|
||||
/** Get pointer to the engine */
|
||||
lsquic_engine_t *
|
||||
lsquic_conn_get_engine (lsquic_conn_t *c);
|
||||
|
||||
int lsquic_conn_get_sockaddr(const lsquic_conn_t *c,
|
||||
const struct sockaddr **local, const struct sockaddr **peer);
|
||||
|
||||
|
@ -777,6 +781,12 @@ enum lsquic_logger_timestamp_style {
|
|||
*/
|
||||
LLTS_HHMMSSUS,
|
||||
|
||||
/**
|
||||
* Date and time using microsecond resolution,
|
||||
* e.g: 2017-03-21 13:43:46.671123
|
||||
*/
|
||||
LLTS_YYYYMMDD_HHMMSSUS,
|
||||
|
||||
N_LLTS
|
||||
};
|
||||
|
||||
|
@ -863,6 +873,11 @@ lsquic_str2ver (const char *str, size_t len);
|
|||
lsquic_conn_ctx_t *
|
||||
lsquic_conn_get_ctx (const lsquic_conn_t *c);
|
||||
|
||||
/**
|
||||
* Set user-supplied context associated with the connection.
|
||||
*/
|
||||
void lsquic_conn_set_ctx (lsquic_conn_t *c, lsquic_conn_ctx_t *h);
|
||||
|
||||
/**
|
||||
* Get peer context associated with the connection.
|
||||
*/
|
||||
|
@ -890,6 +905,25 @@ lsquic_engine_earliest_adv_tick (lsquic_engine_t *engine, int *diff);
|
|||
unsigned
|
||||
lsquic_engine_count_attq (lsquic_engine_t *engine, int from_now);
|
||||
|
||||
enum LSQUIC_CONN_STATUS
|
||||
{
|
||||
LSCONN_ST_HSK_IN_PROGRESS,
|
||||
LSCONN_ST_CONNECTED,
|
||||
LSCONN_ST_HSK_FAILURE,
|
||||
LSCONN_ST_GOING_AWAY,
|
||||
LSCONN_ST_TIMED_OUT,
|
||||
/* If es_honor_prst is not set, the connection will never get public
|
||||
* reset packets and this flag will not be set.
|
||||
*/
|
||||
LSCONN_ST_RESET,
|
||||
LSCONN_ST_USER_ABORTED,
|
||||
LSCONN_ST_ERROR,
|
||||
LSCONN_ST_CLOSED,
|
||||
};
|
||||
|
||||
enum LSQUIC_CONN_STATUS
|
||||
lsquic_conn_status (lsquic_conn_t *, char *errbuf, size_t bufsz);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue