ngtcp2_conn_read_pkt
Synopsis
#include <ngtcp2/ngtcp2.h>
-
int ngtcp2_conn_read_pkt(ngtcp2_conn *conn, const ngtcp2_path *path, const ngtcp2_pkt_info *pi, const uint8_t *pkt, size_t pktlen, ngtcp2_tstamp ts)
ngtcp2_conn_read_pkt()
decrypts QUIC packet given in pkt of length pktlen and processes it. path is the network path the packet is delivered and must not beNULL
. pi is packet metadata and may beNULL
. This function performs QUIC handshake as well.This function must not be called from inside the callback functions.
This function returns 0 if it succeeds, or one of the following negative error codes:
NGTCP2_ERR_RETRY
Server must perform address validation by sending Retry packet (see
ngtcp2_crypto_write_retry()
andngtcp2_pkt_write_retry()
), and discard the connection state. Client application does not get this error code.NGTCP2_ERR_DROP_CONN
Server application must drop the connection silently (without sending any CONNECTION_CLOSE frame), and discard connection state. Client application does not get this error code.
NGTCP2_ERR_DRAINING
A connection has entered the draining state, and no further packet transmission is allowed.
NGTCP2_ERR_CLOSING
A connection has entered the closing state, and no further packet transmission is allowed. Calling
ngtcp2_conn_write_connection_close()
makes a connection enter this state.NGTCP2_ERR_CRYPTO
An error happened in TLS stack.
ngtcp2_conn_get_tls_alert()
returns TLS alert if set.
If any other negative error is returned, call
ngtcp2_conn_write_connection_close()
to get terminal packet, and sending it makes QUIC connection enter the closing state.