Commit Graph

3129 Commits

Author SHA1 Message Date
Marten Seemann
aba2c3d031 remove all references to Public Resets in comments 2018-11-28 11:58:05 +07:00
Marten Seemann
92edfc16ea Merge pull request #1640 from lucas-clemente/fix-1631
fix deadlock when handling packets
2018-11-27 20:18:42 +07:00
Marten Seemann
26132e45f2 Merge pull request #1644 from lucas-clemente/circle-race-detector
run tests with race detector on CircleCI
2018-11-27 18:45:38 +07:00
Marten Seemann
afdf9680e1 fix deadlock when handling packets 2018-11-27 18:45:22 +07:00
Marten Seemann
3f9831a93d Merge pull request #1638 from lucas-clemente/improve-packet-handling
make packet handling as non-blocking as possible
2018-11-27 18:43:52 +07:00
Marten Seemann
ddf677845b Merge pull request #1643 from lucas-clemente/enable-packet-number-decoding-test
enable packet number encoding test case taken from the draft
2018-11-27 18:27:28 +07:00
Marten Seemann
593fd2c994 run tests with race detector on CircleCI 2018-11-27 17:26:46 +07:00
Marten Seemann
8ea110d99b Merge pull request #1642 from lucas-clemente/improve-packet-conn-documentation
improve the description of how we handle net.PacketConns
2018-11-27 17:24:38 +07:00
Marten Seemann
83fac8ebb8 Merge pull request #1632 from lucas-clemente/remove-max-client-hellos
remove unused constant MaxClientHellos
2018-11-27 17:24:09 +07:00
Marten Seemann
198a2a8a04 Merge pull request #1641 from lucas-clemente/remove-rcv-time-in-session
only set the receive time of a packet once
2018-11-27 17:23:56 +07:00
Marten Seemann
364214229d enable packet number encoding test case taken from the draft 2018-11-27 17:23:05 +07:00
Marten Seemann
f49510e88c Merge pull request #1630 from lucas-clemente/new-header
implement the new header format
2018-11-27 17:20:41 +07:00
Marten Seemann
574126d0eb handle Retry packets in a separate Go routine 2018-11-27 17:19:21 +07:00
Marten Seemann
7fecf8e478 handle Version Negotiation packets in a separate Go routine 2018-11-27 17:19:21 +07:00
Marten Seemann
a8db148dbf don't lock the client mutex when handling regular packets 2018-11-27 17:19:21 +07:00
Marten Seemann
38548c137c remove unneeded check for destination connection ID in the client
The packetHandlerMap routes packets to the client based on the
destination connection ID, so we can be sure that packets that are
handled in the client have the right connection ID.
2018-11-27 17:19:21 +07:00
Marten Seemann
5e01c49fdf send Version Negotiation packets in a separate Go routine 2018-11-27 17:19:21 +07:00
Marten Seemann
6c4116e7f4 Merge pull request #1636 from lucas-clemente/fix-1635
keep the connection IDs when receiving a version negotation packet
2018-11-27 17:18:09 +07:00
Marten Seemann
f4a04158c3 Merge pull request #1633 from lucas-clemente/fix-race-in-qtls-config
don't modify the tls.Config when generating the qtls.Config
2018-11-27 17:17:47 +07:00
Marten Seemann
ee2650ee0b Merge pull request #1634 from lucas-clemente/fix-vn-test-race
close the server in the version negotiation integration tests
2018-11-27 17:17:28 +07:00
Marten Seemann
708aa165bc improve the description of how we handle net.PacketConns 2018-11-27 16:33:03 +07:00
Marten Seemann
6d08cf336e only set the receive time of a packet once
We already set the time in the packetHandlerMap.
2018-11-27 16:08:31 +07:00
Marten Seemann
37495d967a keep the connection IDs when receiving a version negotiation packet 2018-11-27 13:13:50 +07:00
Marten Seemann
b0d965dfa5 close the server in the version negotiation integration tests
This fixes a race condition.
2018-11-27 11:19:07 +07:00
Marten Seemann
4bf47870bc don't modify the tls.Config when generating the qtls.Config
This fixes a race conditions when dialing or accepting multiple
connections using the same tls.Config.
2018-11-27 11:17:13 +07:00
Marten Seemann
fb550aaa10 remove unused constant MaxClientHellos 2018-11-27 09:28:17 +07:00
Marten Seemann
0d30e43c32 implement the new format of the Retry packet 2018-11-27 08:29:31 +07:00
Marten Seemann
c791145cba check that the 4th and 5th bit in the short header first byte are unset 2018-11-26 23:14:18 +07:00
Marten Seemann
cce71d84a1 check that the 5th and 6th bit in the long header first byte are unset 2018-11-26 23:05:56 +07:00
Marten Seemann
2add1d2fea add the packet number decoding and encoding test cases from the draft 2018-11-26 23:05:56 +07:00
Marten Seemann
bfb467e9b8 use the new packet number format 2018-11-26 23:05:55 +07:00
Marten Seemann
52380835b9 implement a WriteUintN function 2018-11-26 23:05:51 +07:00
Marten Seemann
faed2ba30a remove version dependency of packet number inferring 2018-11-26 22:46:08 +07:00
Marten Seemann
4145bcc8a7 reject a header if the 0x40 bit of the first bit is not set
This doesn't apply to the version negotiation packet.
2018-11-26 22:46:08 +07:00
Marten Seemann
9c07ac15b8 use the new code points for the packet types in the first byte 2018-11-26 22:46:06 +07:00
Marten Seemann
53aeb7d592 don't use the wire encoding for the PacketType constant 2018-11-26 22:45:28 +07:00
Marten Seemann
dd81dfdbdd Merge pull request #1629 from lucas-clemente/remove-unused-uint
remove unused ReadUint64 and WriteUint64 functions
2018-11-26 17:52:27 +07:00
Marten Seemann
6058f580be remove unused ReadUint64 and WriteUint64 functions 2018-11-26 16:48:36 +07:00
Marten Seemann
42b74c7b87 Merge pull request #1626 from lucas-clemente/move-header-parsing
move header parsing to the session
2018-11-26 16:18:57 +07:00
Marten Seemann
c5ca6fd7e5 parse the extended header in the session 2018-11-26 15:57:54 +07:00
Marten Seemann
70ce6a5814 parse the whole Long Header, if the version is known 2018-11-26 15:57:54 +07:00
Marten Seemann
b740d57c61 embed the Header in the ExtendedHeader 2018-11-26 15:57:54 +07:00
Marten Seemann
af157408de move parsing of extended headers to the same file as the struct 2018-11-26 15:57:54 +07:00
Marten Seemann
9bcedd988d move parsing of version negotiation packets to the wire.Header 2018-11-26 15:57:54 +07:00
Marten Seemann
5581fee684 don't log the packet number for undecryptable packets
The packet number will be covered by header encryption, so we won't be
able to read it if a packet is undecryptable.
2018-11-26 15:57:54 +07:00
Marten Seemann
7b91ba56b6 rename the wire.InvariantHeader to Header 2018-11-26 15:57:54 +07:00
Marten Seemann
bf96707f48 rename the wire.Header to ExtendedHeader
It's not encrypted yet.
2018-11-26 15:57:54 +07:00
Marten Seemann
cef26922b4 when parsing the header from the invariant header, start from first byte
This will be needed once we implement header encryption, because the
flags in the first byte are encrypted.
2018-11-26 15:57:54 +07:00
Marten Seemann
8856384b83 Merge pull request #1627 from lucas-clemente/remove-header-writing-perspective
remove unused perspective from header writing
2018-11-26 15:47:00 +07:00
Marten Seemann
cfb911bd94 Merge pull request #1624 from lucas-clemente/remove-last-rcvd-packet-number
remove the lastRcvdPacketNumber from the session
2018-11-26 15:46:19 +07:00