Commit Graph

63 Commits

Author SHA1 Message Date
Marten Seemann
b5ff87b082 minor refactoring of Public Header parsing 2017-08-23 15:57:35 +07:00
Marten Seemann
05fde42e2d panic if the value for WriteUint48, WriteUint40, WriteUint24 is too big
Note that it's not possible to write a couple of frame types for packet
numbers that don't fit into 6 bytes. The IETF QUIC draft fixes this.
2017-08-23 15:57:35 +07:00
Marten Seemann
2330ac0497 introduce an utils.LittleEndian 2017-08-23 15:57:35 +07:00
Marten Seemann
f535cc40de use io.ReadFull instead of Read to read into known length slices 2017-08-04 19:36:24 +07:00
Marten Seemann
987905149b run gofmt to fix ordering of imports 2017-06-13 18:07:22 +02:00
Marten Seemann
c0b09c8646 make utils an internal package 2017-06-09 22:28:40 +02:00
Marten Seemann
1b70bd42d9 read unsupported version numbers in version negotiation packets 2017-05-05 18:06:14 +08:00
Marten Seemann
b305cd674f make it possible to configure the QUIC versions for the server 2017-05-05 18:05:57 +08:00
Lucas Clemente
5e76245e61 improve documentation in response to code review 2017-03-01 21:40:24 +01:00
Lucas Clemente
1a0dc05211 improve documentation for our new API 2017-02-25 11:28:26 +01:00
Marten Seemann
84ee9a7a5f parse the PublicHeader of packets with truncated connection id
fixes #433
2017-02-21 20:36:27 +07:00
Marten Seemann
11cb69d2ce optimize reading of diversification nonces from the PublicHeader 2017-01-14 18:52:22 +07:00
Marten Seemann
4a88422d9f add workaround for incorrect public flag values sent by Google servers 2017-01-14 18:52:21 +07:00
Marten Seemann
46678abfa6 error on malformed version negotiation packets 2017-01-14 18:52:21 +07:00
Marten Seemann
d37380b7a5 detect unsupported versions when parsing version negotiation packet 2017-01-14 18:52:21 +07:00
Marten Seemann
1154d22218 parse version negotiation packets 2017-01-14 18:52:20 +07:00
Marten Seemann
756a421065 calculate PublicHeader length for packets with VersionFlag and ResetFlag 2017-01-14 18:45:16 +07:00
Marten Seemann
1cea8833c8 read the diversification nonce sent by the server in PublicHeader 2017-01-14 18:45:15 +07:00
Marten Seemann
56a287ab9c correcty read PublicHeader of PublicReset packets 2017-01-14 18:45:15 +07:00
Marten Seemann
db8eb257c6 check for PacketNumberLen when writing the PublicHeader packet number 2017-01-14 18:45:14 +07:00
Marten Seemann
cc2d966d84 write PublicHeaders for packets sent as a client
fixes #346
2017-01-14 18:45:13 +07:00
Marten Seemann
f71e54534a fix parsing of the PublicHeader of public reset packets
ref #34
2017-01-07 14:49:39 +07:00
Marten Seemann
0d6356d9d8 rename PublicHeader.WritePublicHeader to PublicHeader.Write 2016-11-06 22:34:16 +07:00
Lucas Clemente
aa645301c6 improve alignment of some structs 2016-09-07 15:45:33 +02:00
Marten Seemann
956bfa2d5a disable check for diversification nonce public flag bit
see #232
2016-09-01 12:20:18 +02:00
Marten Seemann
5ec7ee7f01 remove support for version 32 from PublicHeader
ref #215
2016-09-01 12:20:18 +02:00
Marten Seemann
99d4e36a56 also make ParsePublicHeader public 2016-08-05 00:12:08 +07:00
Marten Seemann
8b845fada9 make PublicHeader public 2016-08-04 15:45:11 +07:00
Marten Seemann
6a34b9bdf0 remove unused member from PublicHeader 2016-07-30 14:38:25 +07:00
Lucas Clemente
240946dfde replace version number literals with constants to make grepping easier 2016-06-03 11:09:48 +02:00
Lucas Clemente
1896003f42 count diversification nonce in public header length
fixes #161
2016-06-02 12:40:14 +02:00
Lucas Clemente
c6a9e7e575 implement diversification nonce writing in public header
ref #51
2016-05-20 23:13:55 +02:00
Lucas Clemente
d0e6b993bb use new error codes throughout the server
fixes #86
2016-05-17 12:49:59 +02:00
Lucas Clemente
93c52a3414 fix support for version 30
fixes #101, ref #70
2016-05-15 19:58:34 +02:00
Lucas Clemente
0cb0ce8ad8 privatize parsePublicHeader
ref #60
2016-05-15 15:44:50 +02:00
Lucas Clemente
9cc4bb3ccf privatize publicHeader
ref #60
2016-05-15 15:44:14 +02:00
Marten Seemann
e345270e84 use ByteCount type for Frame, Packet and PublicHeader lengths 2016-05-10 23:40:22 +07:00
Marten Seemann
b05b52a2a8 determine the length of the PublicHeader
work towards #67
2016-05-10 21:33:05 +07:00
Marten Seemann
7169584ff9 implement sending of shortened packet numbers 2016-05-10 17:25:52 +07:00
Marten Seemann
476acc2966 fix PublicHeader of VersionNegotiation and PublicReset packets
fixes #71
2016-05-09 22:27:55 +07:00
Marten Seemann
7bf94df817 Revert "fix FlagByte in PublicHeader"
This reverts commit 44e19787f3.
2016-05-09 21:28:00 +07:00
Marten Seemann
44e19787f3 fix FlagByte in PublicHeader 2016-05-09 18:25:12 +07:00
Marten Seemann
e8ba73f275 introduce PacketNumberLen type 2016-05-09 17:31:12 +07:00
Marten Seemann
bb807fa5bd implement sending of truncated ConnectionIDs 2016-05-06 21:53:21 +07:00
Marten Seemann
965addac79 better tests for PublicHeader 2016-05-06 21:15:57 +07:00
Lucas Clemente
d1d4dbde2c update public header parsing to version 33
refs #51
2016-05-05 00:54:29 +02:00
Lucas Clemente
a126e0e606 refactor session to support very basic packet pacing 2016-04-25 14:59:26 +02:00
Lucas Clemente
b17d9a7e55 change public header to correctly state 48bit packet numbers 2016-04-21 17:02:15 +02:00
Lucas Clemente
6d9d9a1c29 send packet numbers with 6byte for simpler session tests 2016-04-20 17:13:06 +02:00
Marten Seemann
23f0d8d6e9 read the STOP_WAITING frame 2016-04-16 01:03:09 +07:00