Marten Seemann
a2e48e204b
return a net.Error when opening streams
...
net.Error.Temporary() will be true if no stream can be opened when the
peer's stream limit is reached.
2019-01-06 17:18:43 +07:00
Marten Seemann
8ac77be934
Merge pull request #1703 from lucas-clemente/fix-1697
...
don't close the session when unpacking a packet fails
2019-01-05 10:59:41 +07:00
Marten Seemann
acd17c1f6b
Merge pull request #1706 from lucas-clemente/tail-loss-integration-test
...
add an integration test for tail loss recovery
2019-01-05 10:58:43 +07:00
Marten Seemann
131f561be0
don't close the session when unpacking a packet fails
...
Before a packet is successfully authenticated, we can't be sure if this
is a packet that was injected by an attacker. If any error occurs before
authenticating the packet, we should just drop it.
2019-01-03 18:53:43 +07:00
Marten Seemann
855b643c7c
move frame parsing to the session
...
This way, we can handle every parsed frame directly, and avoid
allocating a slice of parsed frames.
2019-01-03 18:53:36 +07:00
Marten Seemann
05645b546c
remove special case for Retry packets from the session
...
Retry packets are never passed to the session, so there's no need to
handle them there.
2019-01-03 18:52:32 +07:00
Marten Seemann
203994d06b
add an integration test for tail loss recovery
2019-01-03 18:43:17 +07:00
Marten Seemann
cf0182e61c
use the same package in integration tests
2019-01-03 18:42:49 +07:00
Marten Seemann
3fb58da7e6
Merge pull request #1707 from lucas-clemente/remove-raw-header
...
remove unnecessary Raw byte slice from the header
2019-01-03 18:39:45 +07:00
Marten Seemann
439cdd2679
Merge pull request #1702 from lucas-clemente/fix-1701
...
check that the packet is large enough for the header encryption sample
2019-01-03 18:37:10 +07:00
Marten Seemann
cd96cc745d
Merge pull request #1704 from lucas-clemente/fix-coalesced-logging
...
fix logging of coalesced packets
2019-01-03 18:36:38 +07:00
Marten Seemann
31a164c84f
Merge pull request #1705 from lucas-clemente/fix-drop-tests
...
don't run the handshake drop integration tests twice
2019-01-03 16:18:20 +07:00
Marten Seemann
5a37e8983d
remove unnecessary Raw byte slice from the header
2019-01-03 10:14:08 +07:00
Marten Seemann
3691a18849
Merge pull request #1692 from lucas-clemente/unify-tlp-and-rto
...
unify TLP and RTO
2019-01-03 10:07:00 +07:00
Marten Seemann
41ca178dcc
don't run the handshake drop integration tests twice
2019-01-02 10:04:38 +07:00
Marten Seemann
5d535166ca
fix logging of coalesced packets
2019-01-01 16:51:45 +07:00
Marten Seemann
ba45256b32
check that the packet is large enough for the header encryption sample
2019-01-01 13:06:02 +07:00
Marten Seemann
8b2eb76b75
Merge pull request #1699 from lucas-clemente/fix-short-packet-cutting
...
fix length check for too short packets
2019-01-01 12:08:25 +07:00
Marten Seemann
99b1e50722
fix length check for too short packets
2019-01-01 11:37:09 +07:00
Marten Seemann
673ad95a44
Merge pull request #1698 from lucas-clemente/coalesced-packets
...
implement parsing of coalesced packets
2019-01-01 10:03:18 +07:00
Marten Seemann
77d48248ff
unify TLP and RTO
...
This doesn't yet implement the persistent congestion detection, since
the specification of that still is in flux.
2019-01-01 09:53:09 +07:00
Marten Seemann
b32fb438af
make putting back packet buffers a member function of packetBuffer
2019-01-01 09:50:35 +07:00
Marten Seemann
d3ea7c0c4c
implement handling of coalesced packets
2019-01-01 09:50:35 +07:00
Marten Seemann
6ce7a204fc
move cutting of packets with a length to the packet handler map
2019-01-01 09:50:35 +07:00
Marten Seemann
767dbdd545
put back packet buffers after processing a packet
...
This introduces a reference counter in the packet buffer, which will be
used to process coalesced packets.
2019-01-01 09:50:29 +07:00
Marten Seemann
ed27d0d989
Merge pull request #1696 from lucas-clemente/use-iv-in-aead
...
use the IV when sealing and opening
2018-12-31 00:28:07 +07:00
Marten Seemann
413844d0bc
use in-place decryption when opening packets
2018-12-30 12:41:41 +07:00
Marten Seemann
e3d2c81729
simplify packing of packets
2018-12-30 12:41:30 +07:00
Marten Seemann
be4bdbfad9
remove the encryption level from the packed packet struct
...
This was only needed in gQUIC. In IETF QUIC, We can always derive the
encryption level from the header type when needed.
2018-12-30 12:37:04 +07:00
Marten Seemann
538b84b78d
use the IV when sealing and opening
2018-12-29 16:11:27 +07:00
Marten Seemann
eaad3b2bdf
Merge pull request #1690 from lucas-clemente/rename-handshake-packets
...
rename handshake packets to crypto packets
2018-12-29 08:22:30 +07:00
Marten Seemann
94d80a2271
Merge pull request #1694 from lucas-clemente/remove-go1.8-testcase
...
remove an old Go 1.8 test case
2018-12-29 07:50:50 +07:00
Marten Seemann
ae385e776c
remove an old Go 1.8 test case
2018-12-28 19:25:43 +07:00
Marten Seemann
cf7f2dc661
rename handshake packets to crypto packets
2018-12-28 13:17:31 +07:00
Marten Seemann
3d2d45d53f
Merge pull request #1687 from lucas-clemente/draft-17-initial
...
use the draft-17 initial encryption
2018-12-27 17:20:00 +07:00
Marten Seemann
7cb84c4e06
Merge pull request #1685 from lucas-clemente/increase-pn-after-vn-and-retry
...
increase the packet number after version negotiation and retry
2018-12-27 17:00:58 +07:00
Marten Seemann
b1592d0616
use the draft-17 initial encryption
2018-12-27 16:50:42 +07:00
Marten Seemann
90738b5e0e
Merge pull request #1686 from lucas-clemente/update-qtls
...
update qtls
2018-12-27 16:49:34 +07:00
Marten Seemann
4b194c6fcd
Merge pull request #1684 from lucas-clemente/accept-multiple-acks
...
accept multiple ACKs sent in the same packet
2018-12-27 16:47:38 +07:00
Marten Seemann
07030de6c2
update qtls
2018-12-25 21:35:06 +06:30
Marten Seemann
178ac0dacb
keep increasing the packet number after version negotiation and retry
2018-12-22 22:15:35 +06:30
Marten Seemann
1abf9e1b37
start with packet number 0
2018-12-22 21:25:14 +06:30
Marten Seemann
f9218444a9
use a separate function to close the session after VN and retry
2018-12-21 23:47:10 +06:30
Marten Seemann
a4128ed469
accept multiple ACKs sent in the same packet
2018-12-21 21:10:23 +06:30
Marten Seemann
b166757fd9
Merge pull request #1680 from lucas-clemente/stream-deadlock
...
fix a deadlock when setting read and write deadlines
2018-12-21 15:43:07 +06:30
Marten Seemann
57fb06d3a7
Merge pull request #1682 from lucas-clemente/undecryptable-packets
...
only queue packets for later decryption if the opener is not yet available
2018-12-20 16:35:26 +06:30
Marten Seemann
74d8a2bd7d
ignore 0-RTT packets
2018-12-20 15:25:04 +06:30
Marten Seemann
d6c304610d
only queue packets for decryption if the opener is not yet available
2018-12-20 15:24:56 +06:30
Marten Seemann
a8ad6eea38
add integration tests for setting read and write deadlines
2018-12-20 14:43:25 +06:30
Marten Seemann
0be8e033ab
fix race conditions when setting read and write deadlines
2018-12-20 14:43:11 +06:30