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