changeset 8416:78e362f0b081 quic

Introduced macros for building length-value transport parameters.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 29 May 2020 13:05:57 +0300
parents 125cbfa77013
children 6633f17044eb
files src/event/ngx_event_quic_transport.c
diffstat 1 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/event/ngx_event_quic_transport.c
+++ b/src/event/ngx_event_quic_transport.c
@@ -1613,6 +1613,18 @@ ngx_quic_create_transport_params(u_char 
         ngx_quic_build_int(&p, value);                                        \
     } while (0)
 
+#define ngx_quic_tp_strlen(id, value)                                         \
+    ngx_quic_varint_len(id)                                                   \
+    + ngx_quic_varint_len(value.len)                                          \
+    + value.len
+
+#define ngx_quic_tp_str(id, value)                                            \
+    do {                                                                      \
+        ngx_quic_build_int(&p, id);                                           \
+        ngx_quic_build_int(&p, value.len);                                    \
+        p = ngx_cpymem(p, value.data, value.len);                             \
+    } while (0)
+
     p = pos;
 
     len = ngx_quic_tp_len(NGX_QUIC_TP_ACTIVE_CONNECTION_ID_LIMIT,
@@ -1639,9 +1651,8 @@ ngx_quic_create_transport_params(u_char 
                            tp->max_idle_timeout);
 
     if (tp->retry) {
-        len += ngx_quic_varint_len(NGX_QUIC_TP_ORIGINAL_CONNECTION_ID);
-        len += ngx_quic_varint_len(tp->original_connection_id.len);
-        len += tp->original_connection_id.len;
+        len += ngx_quic_tp_strlen(NGX_QUIC_TP_ORIGINAL_CONNECTION_ID,
+                                  tp->original_connection_id);
     }
 
     if (pos == NULL) {
@@ -1673,10 +1684,8 @@ ngx_quic_create_transport_params(u_char 
                      tp->max_idle_timeout);
 
     if (tp->retry) {
-        ngx_quic_build_int(&p, NGX_QUIC_TP_ORIGINAL_CONNECTION_ID);
-        ngx_quic_build_int(&p, tp->original_connection_id.len);
-        p = ngx_cpymem(p, tp->original_connection_id.data,
-                       tp->original_connection_id.len);
+        ngx_quic_tp_str(NGX_QUIC_TP_ORIGINAL_CONNECTION_ID,
+                        tp->original_connection_id);
     }
 
     return p - pos;