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