view src/event/quic/ngx_event_quic_output.h @ 8417:dcc57827098d quic

QUIC: fixed parsing of unknown frame types. The ngx_quic_frame_allowed() function only expects known frame types.
author Vladimir Homutov <vl@nginx.com>
date Mon, 19 Apr 2021 11:36:41 +0300
parents bc910a5ec737
children 4117aa7fa38e
line wrap: on
line source


/*
 * Copyright (C) Nginx, Inc.
 */


#ifndef _NGX_EVENT_QUIC_OUTPUT_H_INCLUDED_
#define _NGX_EVENT_QUIC_OUTPUT_H_INCLUDED_


#include <ngx_config.h>
#include <ngx_core.h>


size_t ngx_quic_max_udp_payload(ngx_connection_t *c);

ngx_int_t ngx_quic_output(ngx_connection_t *c);

ngx_int_t ngx_quic_negotiate_version(ngx_connection_t *c,
    ngx_quic_header_t *inpkt);

int ngx_quic_send_alert(ngx_ssl_conn_t *ssl_conn,
    enum ssl_encryption_level_t level, uint8_t alert);

ngx_int_t ngx_quic_send_stateless_reset(ngx_connection_t *c,
    ngx_quic_conf_t *conf, ngx_quic_header_t *pkt);
ngx_int_t ngx_quic_send_cc(ngx_connection_t *c);
ngx_int_t ngx_quic_send_early_cc(ngx_connection_t *c,
    ngx_quic_header_t *inpkt, ngx_uint_t err, const char *reason);

ngx_int_t ngx_quic_send_retry(ngx_connection_t *c,
    ngx_quic_conf_t *conf, ngx_quic_header_t *pkt);
ngx_int_t ngx_quic_send_new_token(ngx_connection_t *c);

ngx_int_t ngx_quic_send_ack(ngx_connection_t *c,
    ngx_quic_send_ctx_t *ctx);
ngx_int_t ngx_quic_send_ack_range(ngx_connection_t *c,
    ngx_quic_send_ctx_t *ctx, uint64_t smallest, uint64_t largest);

#endif /* _NGX_EVENT_QUIC_OUTPUT_H_INCLUDED_ */