Mercurial > hg > nginx-quic
annotate src/http/v3/ngx_http_v3_encode.h @ 8509:5b0c229ba5fe quic
QUIC: fixed padding calculation.
Sometimes, QUIC packets need to be of certain (or minimal) size. This is
achieved by adding PADDING frames. It is possible, that adding padding will
affect header size, thus forcing us to recalculate padding size once more.
author | Vladimir Homutov <vl@nginx.com> |
---|---|
date | Mon, 05 Jul 2021 13:17:10 +0300 |
parents | 0ac25efb2da3 |
children |
rev | line source |
---|---|
8433
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
1 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
2 /* |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
3 * Copyright (C) Roman Arutyunyan |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
4 * Copyright (C) Nginx, Inc. |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
5 */ |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
6 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
7 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
8 #ifndef _NGX_HTTP_V3_ENCODE_H_INCLUDED_ |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
9 #define _NGX_HTTP_V3_ENCODE_H_INCLUDED_ |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
10 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
11 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
12 #include <ngx_config.h> |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
13 #include <ngx_core.h> |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
14 #include <ngx_http.h> |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
15 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
16 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
17 uintptr_t ngx_http_v3_encode_varlen_int(u_char *p, uint64_t value); |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
18 uintptr_t ngx_http_v3_encode_prefix_int(u_char *p, uint64_t value, |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
19 ngx_uint_t prefix); |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
20 |
8508
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8433
diff
changeset
|
21 uintptr_t ngx_http_v3_encode_field_section_prefix(u_char *p, |
8433
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
22 ngx_uint_t insert_count, ngx_uint_t sign, ngx_uint_t delta_base); |
8508
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8433
diff
changeset
|
23 uintptr_t ngx_http_v3_encode_field_ri(u_char *p, ngx_uint_t dynamic, |
8433
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
24 ngx_uint_t index); |
8508
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8433
diff
changeset
|
25 uintptr_t ngx_http_v3_encode_field_lri(u_char *p, ngx_uint_t dynamic, |
8433
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
26 ngx_uint_t index, u_char *data, size_t len); |
8508
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8433
diff
changeset
|
27 uintptr_t ngx_http_v3_encode_field_l(u_char *p, ngx_str_t *name, |
8433
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
28 ngx_str_t *value); |
8508
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8433
diff
changeset
|
29 uintptr_t ngx_http_v3_encode_field_pbi(u_char *p, ngx_uint_t index); |
0ac25efb2da3
HTTP/3: quic-qpack term updates.
Sergey Kandaurov <pluknet@nginx.com>
parents:
8433
diff
changeset
|
30 uintptr_t ngx_http_v3_encode_field_lpbi(u_char *p, ngx_uint_t index, |
8433
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
31 u_char *data, size_t len); |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
32 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
33 |
b43e50f47b2e
HTTP/3: separate header files for existing source files.
Roman Arutyunyan <arut@nginx.com>
parents:
diff
changeset
|
34 #endif /* _NGX_HTTP_V3_ENCODE_H_INCLUDED_ */ |