1
0
mirror of https://github.com/facebookincubator/mvfst.git synced 2025-11-25 15:43:13 +03:00
Commit Graph

14 Commits

Author SHA1 Message Date
Aman Sharma
84c1ed50f0 Functionality to encode/decode retry tokens
Summary: This diff defines functionality to encode and decode un-encrypted retry tokens.

Reviewed By: mjoras

Differential Revision: D21073343

fbshipit-source-id: 79c2e8ba3c743441edd4b162da69cc5e69873dd2
2020-04-21 22:36:31 -07:00
Yang Chi
c0707bf996 Make Quic packet header encoding reusable
Summary:
The encoding logic is the same no matter what builder and what IOBuf
manipulater we use. Make these functions reusable.

This requires the QuicInteger encode function to support both BufAppender and
BufWriter. Note that the template is on a callable object. Because later on we
will also need to support wrapped memcpy that isn't a member function.

Reviewed By: mjoras

Differential Revision: D20781979

fbshipit-source-id: 1b8cbdfd7580132c113b12687f932d47207a7cce
2020-04-06 13:59:08 -07:00
TJ Yin
a396f62335 Replace folly::Optional::hasValue() by has_value()
Differential Revision: D19882830

fbshipit-source-id: 031217f9890351022bc8d171f0ccd7e045dd6972
2020-02-26 08:40:44 -08:00
Subodh Iyengar
b7185a418b add missing check in decodepaddingframe
Summary: Add missing 0 bytes check in decodePaddingFrame

Reviewed By: mjoras

Differential Revision: D18921498

fbshipit-source-id: d02baf37cad090251c67e56140adfc734ecee5ef
2019-12-10 18:45:32 -08:00
Subodh Iyengar
7614e8e52e collapse most sequential padding frames
Summary:
For padding frames we don't really need to know the exact number of padding frames in the packet,
but just that a padding frame exists.

This diff tries to collapse multiple sequential padding frames into 1 frame while decoding the packet.
While this wont collapse all padding frames, the common case is that padding is sequential and at the
end of the packet.

Reviewed By: JunqiWang

Differential Revision: D18901925

fbshipit-source-id: 17b4eeabdbf4df01c900a9d5078891eb64bf254a
2019-12-09 21:02:23 -08:00
Subodh Iyengar
17ee9aade0 dont clone during decode
Summary:
Don't clone during decoding a stream frame.

This uses a BufQueue to manage the data instead of passing around cursors.

Reviewed By: yangchi

Differential Revision: D18827718

fbshipit-source-id: 7874d308bb5f43b983b9965b2862e733a2107039
2019-12-05 14:15:11 -08:00
Subodh Iyengar
7ad8cea407 Remove iobufqueue from packetbuilder
Summary:
Get rid of IObufQueue usage in the PacketBuilder and replace it with a vanilla IOBuf.

This requires replacing QueueAppender with something else as well, so this diff adds a new class call BufAppender which does exactly the same things as a QueueAppender.

Having a BufAppender will allow us to avoid cloning the stream buffer in the future and avoid a clone during the write path.

Reviewed By: mjoras

Differential Revision: D18673517

fbshipit-source-id: 31fd7758688686371d038111514eb62d6b21672c
2019-11-28 21:38:28 -08:00
Subodh Iyengar
322eb2ebc4 remove codecresult variant
Summary: remove the variant for codec result and replace it with a custom variant type

Reviewed By: yangchi

Differential Revision: D17247099

fbshipit-source-id: 19e24c14732eb6e8496aee7064f20c48bdf254e0
2019-09-30 17:02:24 -07:00
Subodh Iyengar
6f6ed4d56e remove variant type for QuicPacket
Summary:
Remove the variant type for RegularQuicPacket and VersionNegotiationPacket.

This allows us to move version negotiation parsing to be only used on the client and only done explicitly
before a version is negotiated.

Reviewed By: yangchi

Differential Revision: D17242788

fbshipit-source-id: 502caf6849f0b7e6778f1470dc160d01f17a33af
2019-09-19 17:31:47 -07:00
Subodh Iyengar
04baa15a04 Custom variant type for packetheader
Summary:
Make a custom variant type for PacketHeader. By not relying on boost::variant
this reduces the code size of the implementation.

This uses a combination of a union type as well as a enum type to emulate a variant

Reviewed By: yangchi

Differential Revision: D17187589

fbshipit-source-id: 00c2b9b8dd3f3e73af766d84888b13b9d867165a
2019-09-19 17:31:47 -07:00
Luca Niccolini
cf842aab47 cleanup some unused includes and using
Reviewed By: yangchi

Differential Revision: D16976466

fbshipit-source-id: c1fc2ee0795997f498ac7431542bbfbf1f0d2fb2
2019-08-24 02:03:39 -07:00
Matt Joras
ece3cbe387 Draft-22 varint error codes
Summary: These were changed to varints. To support this we need to do some extra horrible version plumbing. I don't want to keep this long term but it works for now.

Reviewed By: yangchi

Differential Revision: D16293568

fbshipit-source-id: a9ea9083be160aa3e6b338a7d70d7f00e44ec5ab
2019-07-18 12:07:57 -07:00
Udip Pant
4a9537798e Add correct license headers on some missing files
Summary: ^

Reviewed By: sharma95

Differential Revision: D15172546

fbshipit-source-id: bacc832752a433b86962e77bb19aff4504640e60
2019-05-01 22:42:04 -07:00
udippant
50d4939e9e Initial commit of mvfst 2019-04-22 23:42:46 -07:00