changeset 8642:05b1ee464350 quic

QUIC: hide header creation internals in ngx_event_quic_transport.c. It doesn't make sense to expose the header type in a public function.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 17 Nov 2020 21:32:06 +0000
parents fe53def49945
children 5fdd0ef42232
files src/event/ngx_event_quic.c src/event/ngx_event_quic_protection.c src/event/ngx_event_quic_transport.c src/event/ngx_event_quic_transport.h
diffstat 4 files changed, 20 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -4858,7 +4858,7 @@ ngx_quic_send_frames(ngx_connection_t *c
 
     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 {
--- a/src/event/ngx_event_quic_protection.c
+++ b/src/event/ngx_event_quic_protection.c
@@ -837,7 +837,7 @@ ngx_quic_create_long_packet(ngx_quic_hea
     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;
 
@@ -895,7 +895,7 @@ ngx_quic_create_short_packet(ngx_quic_he
     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;
 
--- a/src/event/ngx_event_quic_transport.c
+++ b/src/event/ngx_event_quic_transport.c
@@ -80,6 +80,11 @@ static ngx_int_t ngx_quic_parse_long_hea
 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);
@@ -562,6 +567,16 @@ ngx_quic_create_version_negotiation(ngx_
 
 
 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)
 {
@@ -612,7 +627,7 @@ ngx_quic_create_long_header(ngx_quic_hea
 }
 
 
-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)
 {
--- a/src/event/ngx_event_quic_transport.h
+++ b/src/event/ngx_event_quic_transport.h
@@ -335,10 +335,7 @@ ngx_int_t ngx_quic_parse_packet(ngx_quic
 
 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,