Skip to content

Commit 0f2fcaf

Browse files
tniessenjasnell
authored andcommitted
deps: update to ngtcp2 0.8.1 and nghttp3 0.7.0
Refs: #44619 Co-authored-by: James M Snell <[email protected]> PR-URL: #44622 Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Antoine du Hamel <[email protected]>
1 parent 1bb394e commit 0f2fcaf

File tree

121 files changed

+19242
-7107
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

121 files changed

+19242
-7107
lines changed

deps/ngtcp2/nghttp3/lib/includes/nghttp3/nghttp3.h

+392-412
Large diffs are not rendered by default.

deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
*
3232
* Version number of the nghttp3 library release.
3333
*/
34-
#define NGHTTP3_VERSION "0.1.0-DEV"
34+
#define NGHTTP3_VERSION "0.7.0"
3535

3636
/**
3737
* @macro
@@ -41,6 +41,6 @@
4141
* number, 8 bits for minor and 8 bits for patch. Version 1.2.3
4242
* becomes 0x010203.
4343
*/
44-
#define NGHTTP3_VERSION_NUM 0x000100
44+
#define NGHTTP3_VERSION_NUM 0x000700
4545

4646
#endif /* NGHTTP3_VERSION_H */
+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
/*
2+
* nghttp3
3+
*
4+
* Copyright (c) 2022 nghttp3 contributors
5+
* Copyright (c) 2022 ngtcp2 contributors
6+
*
7+
* Permission is hereby granted, free of charge, to any person obtaining
8+
* a copy of this software and associated documentation files (the
9+
* "Software"), to deal in the Software without restriction, including
10+
* without limitation the rights to use, copy, modify, merge, publish,
11+
* distribute, sublicense, and/or sell copies of the Software, and to
12+
* permit persons to whom the Software is furnished to do so, subject to
13+
* the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be
16+
* included in all copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25+
*/
26+
#include "nghttp3_balloc.h"
27+
28+
#include <assert.h>
29+
30+
#include "nghttp3_mem.h"
31+
32+
void nghttp3_balloc_init(nghttp3_balloc *balloc, size_t blklen,
33+
const nghttp3_mem *mem) {
34+
assert((blklen & 0xfu) == 0);
35+
36+
balloc->mem = mem;
37+
balloc->blklen = blklen;
38+
balloc->head = NULL;
39+
nghttp3_buf_wrap_init(&balloc->buf, (void *)"", 0);
40+
}
41+
42+
void nghttp3_balloc_free(nghttp3_balloc *balloc) {
43+
if (balloc == NULL) {
44+
return;
45+
}
46+
47+
nghttp3_balloc_clear(balloc);
48+
}
49+
50+
void nghttp3_balloc_clear(nghttp3_balloc *balloc) {
51+
nghttp3_memblock_hd *p, *next;
52+
53+
for (p = balloc->head; p; p = next) {
54+
next = p->next;
55+
nghttp3_mem_free(balloc->mem, p);
56+
}
57+
58+
balloc->head = NULL;
59+
nghttp3_buf_wrap_init(&balloc->buf, (void *)"", 0);
60+
}
61+
62+
int nghttp3_balloc_get(nghttp3_balloc *balloc, void **pbuf, size_t n) {
63+
uint8_t *p;
64+
nghttp3_memblock_hd *hd;
65+
66+
assert(n <= balloc->blklen);
67+
68+
if (nghttp3_buf_left(&balloc->buf) < n) {
69+
p = nghttp3_mem_malloc(balloc->mem, sizeof(nghttp3_memblock_hd) + 0x10u +
70+
balloc->blklen);
71+
if (p == NULL) {
72+
return NGHTTP3_ERR_NOMEM;
73+
}
74+
75+
hd = (nghttp3_memblock_hd *)(void *)p;
76+
hd->next = balloc->head;
77+
balloc->head = hd;
78+
nghttp3_buf_wrap_init(
79+
&balloc->buf,
80+
(uint8_t *)(((uintptr_t)p + sizeof(nghttp3_memblock_hd) + 0xfu) &
81+
~(uintptr_t)0xfu),
82+
balloc->blklen);
83+
}
84+
85+
assert(((uintptr_t)balloc->buf.last & 0xfu) == 0);
86+
87+
*pbuf = balloc->buf.last;
88+
balloc->buf.last += (n + 0xfu) & ~(uintptr_t)0xfu;
89+
90+
return 0;
91+
}
+92
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
/*
2+
* nghttp3
3+
*
4+
* Copyright (c) 2022 nghttp3 contributors
5+
* Copyright (c) 2022 ngtcp2 contributors
6+
*
7+
* Permission is hereby granted, free of charge, to any person obtaining
8+
* a copy of this software and associated documentation files (the
9+
* "Software"), to deal in the Software without restriction, including
10+
* without limitation the rights to use, copy, modify, merge, publish,
11+
* distribute, sublicense, and/or sell copies of the Software, and to
12+
* permit persons to whom the Software is furnished to do so, subject to
13+
* the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be
16+
* included in all copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19+
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20+
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21+
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22+
* LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23+
* OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24+
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25+
*/
26+
#ifndef NGHTTP3_BALLOC_H
27+
#define NGHTTP3_BALLOC_H
28+
29+
#ifdef HAVE_CONFIG_H
30+
# include <config.h>
31+
#endif /* HAVE_CONFIG_H */
32+
33+
#include <nghttp3/nghttp3.h>
34+
35+
#include "nghttp3_buf.h"
36+
37+
typedef struct nghttp3_memblock_hd nghttp3_memblock_hd;
38+
39+
/*
40+
* nghttp3_memblock_hd is the header of memory block.
41+
*/
42+
struct nghttp3_memblock_hd {
43+
nghttp3_memblock_hd *next;
44+
};
45+
46+
/*
47+
* nghttp3_balloc is a custom memory allocator. It allocates |blklen|
48+
* bytes of memory at once on demand, and returns its slice when the
49+
* allocation is requested.
50+
*/
51+
typedef struct nghttp3_balloc {
52+
/* mem is the underlying memory allocator. */
53+
const nghttp3_mem *mem;
54+
/* blklen is the size of memory block. */
55+
size_t blklen;
56+
/* head points to the list of memory block allocated so far. */
57+
nghttp3_memblock_hd *head;
58+
/* buf wraps the current memory block for allocation requests. */
59+
nghttp3_buf buf;
60+
} nghttp3_balloc;
61+
62+
/*
63+
* nghttp3_balloc_init initializes |balloc| with |blklen| which is the
64+
* size of memory block.
65+
*/
66+
void nghttp3_balloc_init(nghttp3_balloc *balloc, size_t blklen,
67+
const nghttp3_mem *mem);
68+
69+
/*
70+
* nghttp3_balloc_free releases all allocated memory blocks.
71+
*/
72+
void nghttp3_balloc_free(nghttp3_balloc *balloc);
73+
74+
/*
75+
* nghttp3_balloc_get allocates |n| bytes of memory and assigns its
76+
* pointer to |*pbuf|.
77+
*
78+
* It returns 0 if it succeeds, or one of the following negative error
79+
* codes:
80+
*
81+
* NGHTTP3_ERR_NOMEM
82+
* Out of memory.
83+
*/
84+
int nghttp3_balloc_get(nghttp3_balloc *balloc, void **pbuf, size_t n);
85+
86+
/*
87+
* nghttp3_balloc_clear releases all allocated memory blocks and
88+
* initializes its state.
89+
*/
90+
void nghttp3_balloc_clear(nghttp3_balloc *balloc);
91+
92+
#endif /* NGHTTP3_BALLOC_H */

0 commit comments

Comments
 (0)