Commit graph

469 commits

Author SHA1 Message Date
Marten Seemann
34543848f0 send a NEW_TOKEN from after completing the handshake (as a server) 2019-06-02 14:18:27 +08:00
Marten Seemann
e361d3c5cd use a callback to signal completion of the handshake 2019-05-31 19:13:41 +08:00
Marten Seemann
743868159f use a callback to pass handshake errors to the session 2019-05-31 18:35:37 +08:00
Marten Seemann
06da72ae4e
Merge pull request #1929 from lucas-clemente/drop-handshake-keys
drop Initial and Handshake keys when receiving the first 1-RTT ACK
2019-05-30 20:52:39 +08:00
Marten Seemann
cd6047b58e fix logging of application errors 2019-05-30 17:15:19 +08:00
Marten Seemann
a4989c3d9c drop Initial and Handshake keys when receiving the first 1-RTT ACK 2019-05-30 14:19:26 +08:00
Marten Seemann
2f4fc22be1 remove unused Session.GetOrOpenStream
This method was only needed for the gQUIC H2 mapping.
2019-05-28 17:35:50 +01:00
Marten Seemann
0a86224858 pass a string, not an error, to Session.CloseWithError 2019-05-13 08:04:24 +02:00
Marten Seemann
b5336be518 rename retransmittable to ack-eliciting 2019-04-12 13:25:39 +09:00
Marten Seemann
565e5f135a don't require servers to send stateless reset tokens in transport params 2019-03-24 16:23:08 +01:00
Marten Seemann
d44c81de7a remove verification of version negotiation 2019-03-23 11:26:20 +01:00
Marten Seemann
b816209f66 fix queueing of undecryptable packets 2019-03-10 12:25:16 +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
ef55a44bdb restart the idle timeout when sending the first retransmittable packet 2019-03-08 17:32:50 +09:00
Marten Seemann
662041649f use the error names from the draft 2019-03-06 13:45:05 +09:00
Marten Seemann
9c09e84765 use IETF QUIC transport error codes 2019-03-06 13:43:18 +09:00
Marten Seemann
47c156c59b don't send timeout errors on the wire 2019-03-02 16:40:03 +09:00
Marten Seemann
9b5a20e772 remove some unused functions 2019-02-27 19:31:53 +09:00
Marten Seemann
fbe8844006 remove some unneccessary type conversions 2019-02-27 19:30:55 +09:00
Marten Seemann
02e851bd11 cut coalesed packets in the session 2019-02-27 10:03:34 +09:00
Marten Seemann
28ed85b9c6 move cutting of coalesced packets to the wire package 2019-02-23 10:24:42 +08:00
Marten Seemann
17f4ebad64 handle Retry packets in the session 2019-02-04 15:38:47 +08:00
Marten Seemann
2712626e66 move processing of transport parameters to the session 2019-02-02 09:24:37 +08: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
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
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
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
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
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
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
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
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
9bcedd988d move parsing of version negotiation packets to the wire.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
a3f91d3c98 remove the lastRcvdPacketNumber from the session
This variable was only used to pass the packet number an ACK was
received with to the SentPacketHandler. The better way to do this is by
passing the value to handleAckFrame() directly.
2018-11-26 08:47:02 +07:00
Marten Seemann
590df11604
Merge pull request #1613 from lucas-clemente/remove-pnlen-6
remove 6 byte packet numbers
2018-11-19 20:45:42 +07:00
Marten Seemann
7696bf59ea remove 6 byte packet numbers 2018-11-19 16:15:02 +07:00
Marten Seemann
6c7fbc4a79 remove special case for testing when receiving packets in the session 2018-11-19 15:08:08 +07:00