Commit Graph

121 Commits

Author SHA1 Message Date
Marten Seemann
022189dfda rename the RST_STREAM frame to RESET_STREAM frame 2018-11-04 12:26:02 +07:00
Marten Seemann
2eed03c747 remove the header parameter for parsing frames
It was only needed for parsing STOP_WAITING frames.
2018-11-03 09:23:22 +07:00
Marten Seemann
2bfe8d0b77 Merge pull request #1568 from lucas-clemente/close-frames
implement changes to the CONNECTION_CLOSE frame
2018-11-01 15:51:14 +07:00
Marten Seemann
716e8f2d0a remove the error return value from wire.Header.GetLength
Using an invalid packet number length would error on Header.Write(), so
it's not necessary to check this on GetLength().
2018-11-01 13:49:36 +07:00
Marten Seemann
73ac6b14bf implement changes to the CONNECTION_CLOSE frame 2018-10-31 11:21:51 +07:00
Marten Seemann
3266e36811 drop support for gQUIC 2018-10-30 10:20:39 +07:00
Marten Seemann
d2a52a1433 implement parsing, writing and logging of CRYPTO frames 2018-10-26 16:11:25 +07:00
Marten Seemann
41808516c8 merge ACK and ACK_ECN into a single frame 2018-09-27 12:11:52 -06:00
Marten Seemann
73a1a0e509 implement writing of the gQUIC 44 header 2018-08-28 08:49:29 +07:00
Marten Seemann
a98fd88a1b implement parsing of the gQUIC 44 header 2018-08-28 08:49:29 +07:00
Marten Seemann
88505b79a7 disable sending and receiving of STOP_WAITING frames in QUIC 44 2018-08-28 08:49:13 +07:00
Marten Seemann
46f8c07daa improve the version negotiation integration test 2018-08-27 09:29:26 +07:00
Marten Seemann
d8aa49d0f9 implement writing and parsing of the new Retry packet 2018-08-13 08:47:29 +07:00
Marten Seemann
e39251c8b5 implement writing and parsing of Initial packets containing a Token 2018-08-13 08:47:29 +07:00
Marten Seemann
3d087d522c implement parsing of ACK_ECN frames 2018-07-29 17:35:31 +07:00
Marten Seemann
0bd7e744ff implement parsing of headers with different connection ID lengths 2018-07-03 18:01:41 +07:00
Marten Seemann
eb8ee42d75 Merge pull request #1424 from lucas-clemente/header-refactoring
refactor header parsing
2018-07-02 21:46:06 +07:00
Marten Seemann
1f4335ffce fix buffer size for version negotiation packets 2018-07-01 14:06:35 +07:00
Marten Seemann
4109c85c8a refactor header parsing in a version independent and dependent part 2018-07-01 09:01:30 +07:00
Marten Seemann
74ed3f7037 remove writing of special Public Header packets
Version Negotiation Packets and Public Resets are written separately, so
we don't need to have code for that in the Public Header.
2018-06-30 12:48:42 +07:00
Marten Seemann
7b96d158d2 remove the OmitConnectionID field from the Header struct
Instead, just look at the length of the destination connection ID.
2018-06-24 17:21:41 +07:00
Marten Seemann
fc57bf6c35 only set the destination connection ID for the Public Header 2018-06-24 16:47:59 +07:00
Marten Seemann
3e03055a7d use varint packet numbers in IETF QUIC headers 2018-06-06 16:07:47 +02:00
Marten Seemann
5142b73ac3 Merge pull request #1370 from lucas-clemente/client-header-parsing
parse headers sent by the server without knowing the version
2018-05-29 16:43:52 +08:00
Marten Seemann
372463db49 don't pass the client's version to the header parser 2018-05-21 11:27:15 +08:00
Marten Seemann
797dfa57a1 disable 6 byte packet number in Public Headers
Chrome never sends 6 byte packet numbers in Public Headers.
2018-05-21 11:26:08 +08:00
Marten Seemann
5f5bb1f700 allow empty STREAM frames at arbitrary offsets 2018-05-11 11:08:08 +09:00
Marten Seemann
8f2fed1b10 parse IETF headers independent of the sender's perspective
The IETF header format allows parsing of the header without knowing
which peer sent the packet.
2018-05-09 13:28:30 +09:00
Marten Seemann
683b5823e4 handle gQUIC and IETF QUIC packets separately in the client 2018-05-08 15:17:16 +09:00
Marten Seemann
94c48d371a indent header log entries using tabs, not spaces 2018-05-07 09:11:34 +09:00
Marten Seemann
1b9ac93c13 Merge pull request #1331 from lucas-clemente/fix-1330
set the ACK frame delay time when generating the frame
2018-05-05 14:23:50 +09:00
Marten Seemann
b83a4c069d improve logging of ACK frames with ranges 2018-05-01 11:40:10 +09:00
Marten Seemann
ee968aff67 set the ACK frame delay time when generating the frame 2018-04-30 21:50:33 +09:00
Lucas Clemente
0d8f0be92b Fix unnecessary stack growth when parsing frames 2018-04-30 10:28:18 +02:00
Marten Seemann
596ef35a80 implement parsing and writing of the Payload Length Long Header field 2018-04-23 17:39:03 +09:00
Marten Seemann
0e58a679d6 Merge pull request #1319 from lucas-clemente/fix-1307
use different source and destination connection IDs
2018-04-23 17:29:45 +09:00
Marten Seemann
b1de5df2f8 Merge pull request #1311 from lucas-clemente/fix-1302
limit the size of the ACK frame
2018-04-23 17:23:52 +09:00
Marten Seemann
cb0395ae37 Merge pull request #1316 from lucas-clemente/fix-1310
implement PATH_CHALLENGE and PATH_RESPONSE frames
2018-04-23 17:13:39 +09:00
Marten Seemann
126de06cc0 Merge pull request #1320 from lucas-clemente/fix-vnp-logging
fix logging of version negotiation packets
2018-04-23 17:00:25 +09:00
Marten Seemann
f353658547 limit the size of an ACK frame to 1000 bytes 2018-04-23 16:44:39 +09:00
Marten Seemann
4891b65c4b refactor calculation of ACK ranges into a separate function 2018-04-23 16:44:38 +09:00
Marten Seemann
108e574581 implement parsing and writing of the PATH_RESPONSE frame 2018-04-23 16:41:06 +09:00
Marten Seemann
f53f3eee9f implement parsing and writing of the PATH_CHALLENGE frame 2018-04-23 16:41:06 +09:00
Marten Seemann
804eac7348 fix logging of version negotiation packets 2018-04-23 16:37:59 +09:00
Marten Seemann
cd359ec5e0 change the type byte of the IETF ACK frame from 0x0e to 0x0d 2018-04-23 15:57:50 +09:00
Marten Seemann
fae32101a0 use different source and destination connection IDs 2018-04-23 15:23:01 +09:00
Marten Seemann
c1d8c8940e Merge pull request #1306 from lucas-clemente/new-header
implement the new IETF QUIC packet header
2018-04-19 18:15:15 +09:00
Marten Seemann
1ec873f917 use binary search to check if an ACK acks a packet 2018-04-19 17:36:12 +09:00
Marten Seemann
d47124d14d add more methods to the protocol.ConnectionID
This will make it easier to change the underlying type of the connection
ID (potentially an array is faster than a byte slice).
2018-04-19 16:08:06 +09:00
Marten Seemann
52d31dd7ef implement the new header format
Currently, we're only sending and accepting packets with matching source
and destination connection IDs.
2018-04-19 13:46:54 +09:00