It doesn't make sense to expose the header type in a public function.
if (start->level == ssl_encryption_initial && pkt.need_ack) {
pad_len = NGX_QUIC_MIN_INITIAL_SIZE - EVP_GCM_TLS_TAG_LEN
- - ngx_quic_create_long_header(&pkt, NULL, out.len, NULL);
+ - ngx_quic_create_header(&pkt, NULL, out.len, NULL);
pad_len = ngx_min(pad_len, NGX_QUIC_MIN_INITIAL_SIZE);
} else {
out.len = pkt->payload.len + EVP_GCM_TLS_TAG_LEN;
ad.data = res->data;
- ad.len = ngx_quic_create_long_header(pkt, ad.data, out.len, &pnp);
+ ad.len = ngx_quic_create_header(pkt, ad.data, out.len, &pnp);
out.data = res->data + ad.len;
out.len = pkt->payload.len + EVP_GCM_TLS_TAG_LEN;
ad.data = res->data;
- ad.len = ngx_quic_create_short_header(pkt, ad.data, out.len, &pnp);
+ ad.len = ngx_quic_create_header(pkt, ad.data, out.len, &pnp);
out.data = res->data + ad.len;
static ngx_int_t ngx_quic_supported_version(uint32_t version);
static ngx_int_t ngx_quic_parse_long_header_v1(ngx_quic_header_t *pkt);
+static size_t ngx_quic_create_long_header(ngx_quic_header_t *pkt, u_char *out,
+ size_t pkt_len, u_char **pnp);
+static size_t ngx_quic_create_short_header(ngx_quic_header_t *pkt, u_char *out,
+ size_t pkt_len, u_char **pnp);
+
static ngx_int_t ngx_quic_frame_allowed(ngx_quic_header_t *pkt,
ngx_uint_t frame_type);
static size_t ngx_quic_create_ack(u_char *p, ngx_quic_ack_frame_t *ack);
size_t
+ngx_quic_create_header(ngx_quic_header_t *pkt, u_char *out, size_t pkt_len,
+ u_char **pnp)
+{
+ return ngx_quic_short_pkt(pkt->flags)
+ ? ngx_quic_create_short_header(pkt, out, pkt_len, pnp)
+ : ngx_quic_create_long_header(pkt, out, pkt_len, pnp);
+}
+
+
+static size_t
ngx_quic_create_long_header(ngx_quic_header_t *pkt, u_char *out,
size_t pkt_len, u_char **pnp)
{
}
-size_t
+static size_t
ngx_quic_create_short_header(ngx_quic_header_t *pkt, u_char *out,
size_t pkt_len, u_char **pnp)
{
size_t ngx_quic_create_version_negotiation(ngx_quic_header_t *pkt, u_char *out);
-size_t ngx_quic_create_long_header(ngx_quic_header_t *pkt, u_char *out,
- size_t pkt_len, u_char **pnp);
-
-size_t ngx_quic_create_short_header(ngx_quic_header_t *pkt, u_char *out,
+size_t ngx_quic_create_header(ngx_quic_header_t *pkt, u_char *out,
size_t pkt_len, u_char **pnp);
size_t ngx_quic_create_retry_itag(ngx_quic_header_t *pkt, u_char *out,