Commit Graph

648 Commits

Author SHA1 Message Date
Marten Seemann
4a1dd9ce92 fix initialization of stream flow controllers for local / remote streams 2019-03-23 13:58:43 +01:00
Marten Seemann
b816209f66 fix queueing of undecryptable packets 2019-03-10 12:25:16 +09:00
Marten Seemann
e4bd715728 Merge pull request #1814 from lucas-clemente/stateless-resets
implement sending of stateless resets
2019-03-08 18:54:13 +09:00
Marten Seemann
f9c7c0f703 Merge pull request #1817 from lucas-clemente/tls-errors
rework crypto errors
2019-03-08 18:15:18 +09:00
Marten Seemann
94046cdb4b implement sending of stateless resets 2019-03-08 18:10:15 +09:00
Marten Seemann
6cf20310fe use an array for the stateless reset token in the transport parameters 2019-03-08 18:09:37 +09:00
Marten Seemann
733dcb75eb rename the methods of the sessionRunner interface 2019-03-08 18:09:36 +09:00
Marten Seemann
5b27076a4c return the local TLS error, but don't send it on the wire 2019-03-08 18:02:43 +09:00
Marten Seemann
ef55a44bdb restart the idle timeout when sending the first retransmittable packet 2019-03-08 17:32:50 +09:00
Marten Seemann
3cd2d80cac improve logging of errors in the session 2019-03-07 14:35:34 +09:00
Marten Seemann
8118beab67 remove the error return value from session.handleCloseError 2019-03-07 14:01:41 +09:00
Marten Seemann
9c09e84765 use IETF QUIC transport error codes 2019-03-06 13:43:18 +09:00
Marten Seemann
966b00dd3d Merge pull request #1808 from lucas-clemente/fix-coalesed-packet-buffer-usage
fix packet buffer usage when handling coalesced packets
2019-03-05 18:25:57 +09:00
Marten Seemann
33bf79c735 fix packet buffer usage when handling coalesced packets 2019-03-05 18:03:38 +09:00
Marten Seemann
47c156c59b don't send timeout errors on the wire 2019-03-02 16:40:03 +09:00
Marten Seemann
02e851bd11 cut coalesed packets in the session 2019-02-27 10:03:34 +09:00
Marten Seemann
f6642ff948 use separate packet number spaces for sending packets
Packet numbers now start at 0 for every packet number spaces.
Furthermore, an ACK frame now only acknowledges packets in the packet
number space it was sent in.
2019-02-11 20:13:05 +08:00
Marten Seemann
b24b8e6926 implement sending of post-handshake crypto messages 2019-02-06 23:05:43 +08:00
Marten Seemann
17f4ebad64 handle Retry packets in the session 2019-02-04 15:38:47 +08:00
Marten Seemann
7a7e7ca6eb add a function to pass the retry token to the packet packer 2019-02-02 09:24:37 +08:00
Marten Seemann
2712626e66 move processing of transport parameters to the session 2019-02-02 09:24:37 +08:00
Marten Seemann
cebb4342ec use the ack_delay_exponent sent in the transport parameters 2019-01-28 16:09:47 +09:00
Marten Seemann
741521c4d1 refactor frame parsing into a separate struct 2019-01-28 16:09:47 +09:00
Marten Seemann
887462db5e remove unused session.newStream method 2019-01-22 23:46:30 +07:00
Marten Seemann
a303ad9745 always send ACKs in the correct packet number space 2019-01-11 11:12:07 +07:00
Marten Seemann
5ccc367462 start ignoring packets in ACK frames only after the handshake completed 2019-01-11 10:52:39 +07:00
Marten Seemann
9025133936 remove unneeded check for decryption errors in session 2019-01-06 17:34:24 +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
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
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
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
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
178ac0dacb keep increasing the packet number after version negotiation and retry 2018-12-22 22:15:35 +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
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
d535340d0c only initialize the framer once 2018-12-18 15:45:40 +06:30
Marten Seemann
aaea375fb6 move parsing of the extended header to the unpacker 2018-12-14 16:46:40 +06:30
Marten Seemann
c912860a94 don't explicitely pass the header binary to the unpacker 2018-12-14 16:46:40 +06:30
Marten Seemann
ce6b9f2f1d save the decoded packet number on the unpacked packet 2018-12-14 16:46:40 +06:30
Marten Seemann
a8e5309cd1 move packet number decoding to the unpacker 2018-12-14 16:46:40 +06:30
Marten Seemann
c06a0ca037 rename InferPacketNumber to DecodePacketNumber
That's how it's called in the draft.
2018-12-14 16:46:40 +06:30
Marten Seemann
a009217ee4 fix logging of packet size 2018-12-14 16:46:40 +06:30
Marten Seemann
723e18c78c don't treat handshake retransmissions separately 2018-11-29 09:39:43 +07:00
Marten Seemann
aba2c3d031 remove all references to Public Resets in comments 2018-11-28 11:58:05 +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
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