Lachlan Roberts
|
684272e1ae
|
Improve QPACK testing for instruction parsers.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
b2a91fdbaf
|
Remove all synchronization from QpackEncoder & QpackDecoder
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
5cde0ca7c8
|
QpackEncoder.encode should take buffer to encode into instead of allocating.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
0ccb826532
|
Filter out connection specific headers for Http3Fields
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
3a6a3e094d
|
Use MetaData instead of HttpFields for QPACK
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
27122c2c91
|
Fix broken test case EncodeDecodeTest.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
ea70f599bb
|
Refactor QPACK to use an internal package for non API classes.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
f9606770b3
|
Use calculated header size for QpackEncoder buffer allocation.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
191b1af880
|
Qpack refactoring, testing and bug fixes.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
a4938a3f4a
|
Renaming and change package access.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
da50072cc8
|
The QpackEncoder should be able to use PreEncodedHttpFields.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
c9dfded16a
|
Implement the QpackFieldPreEncoder allowing it to use static table references.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
c3d69b3e60
|
DynamicTable should use a configurable draining index, only updated on insertions.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
1ae03a9d40
|
Allow extensions of QpackEncoder to override choice to huffman encode.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
f1e46c6127
|
Add synchronization to both Qpack Encoder and Decoder.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
7c042b5205
|
wip
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
f8e2831185
|
Implement SectionAcknowledgment and StreamCancellation
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
c271b70d29
|
Rewrite QpackEncoder.encode for HttpField, implement Duplicates.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
bdf44b8e22
|
Work through examples B.1. and B.2. from spec and fix bugs.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
5b178d16b7
|
Write the basic implementation for the QpackEncoder.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
ae4f33ed9e
|
Remove the QPACK tests which only apply to HTTP/2 HPACK.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
5958bae765
|
QpackDecoder should take the Stream ID to decode.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
08b612feca
|
Add basic implementation for the QpackDecoder.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
9d9e13cf3a
|
Use setPrefix API for NBitIntegerParser
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
12a64b1637
|
Use classes for encoder and decoder instructions.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
883e4f79c2
|
Implement Encoder & Decoder Streams to encode instructions.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
2916b60091
|
Implement insertNameWithReference and insertWithLiteralName in EncoderInstructionParser.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
b3cd2a1c27
|
Implement setCapacity and duplicate on the Encoder Instruction Parser.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
7c34d3c0cd
|
Implement a decoder instruction parser & add tests.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
96b940e35d
|
Add copy of the new QPACK static table from SPEC.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
f39313b1d5
|
Decouple the DynamicTable from the QpackContext.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
5d07842af8
|
Extract the StaticTable from the QpackContext.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
f8d2d9c600
|
Refactor names of HPACK to QPACK
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |
Lachlan Roberts
|
ee042b173a
|
Copy http2-hpack files into http3-qpack.
Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
|
2021-12-20 09:33:38 +01:00 |