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
Marten Seemann
65cca7b726
immediately remove sessions that were closed remotely
...
We only need to keep sessions that were closed locally, in order to
retransmit the CONNECTION_CLOSE packet. For sessions that were closed by
the peer, we don't need to wait for any more packets, and there's also
no CONNECTION_CLOSE to retransmit. The same applies for sessions that
were destroyed when receiving a Version Negotiation or a Retry packet.
2018-11-16 21:22:32 +07:00
Marten Seemann
a3831b2134
rename removing of connection IDs to retiring
2018-11-16 21:22:32 +07:00
Marten Seemann
9d06b2cfff
retransmit the CONNECTION_CLOSE packet when late packets arrive
2018-11-15 16:52:02 +07:00
Marten Seemann
190d1dcc59
Merge pull request #1595 from lucas-clemente/fix-1529
...
authenticate retries
2018-11-12 18:00:22 +07:00
Marten Seemann
c37b698f68
Merge pull request #1596 from lucas-clemente/internalize-errors
...
internalize the qerr package
2018-11-12 15:54:39 +07:00
Marten Seemann
3ffea5d8c4
internalize the qerr package
2018-11-11 12:44:16 +07:00
Marten Seemann
70cb67bd2a
check that the server sends the correct original_connection_id
2018-11-11 11:00:40 +07:00
Marten Seemann
dd9ce2e668
replace the STREAM_ID_BLOCKED with the STREAMS_BLOCKED frame
2018-11-10 09:38:57 +07:00
Marten Seemann
9518c90c0a
implement and use the MAX_STREAMS frame
2018-11-10 09:38:50 +07:00
Marten Seemann
05ecf9bc02
rename the STREAM_BLOCKED frame to STREAM_DATA_BLOCKED
2018-11-10 09:05:27 +07:00
Marten Seemann
387613aa20
rename the BLOCKED from to DATA_BLOCKED
2018-11-10 09:05:06 +07:00
Marten Seemann
022189dfda
rename the RST_STREAM frame to RESET_STREAM frame
2018-11-04 12:26:02 +07:00
Marten Seemann
c81cd92daf
return the packet number length when peek a new packet number
2018-11-02 17:14:31 +07:00
Marten Seemann
16848038be
remove unnecessary initial packet number parameter
2018-11-02 17:14:31 +07:00
Marten Seemann
9981026839
split the flow control transport parameters
2018-11-01 13:09:29 +07:00
Marten Seemann
a1acfc3045
rename {Stream,Connection}FlowControlWindow to InitialMax{Stream}Data
2018-10-30 12:52:42 +07:00
Marten Seemann
3266e36811
drop support for gQUIC
2018-10-30 10:20:39 +07:00
Marten Seemann
8344dc8b64
close the TLS crypto setup when session closes
2018-10-29 15:06:41 +07:00
Marten Seemann
eeab7a5fca
allow the server to retransmit Initial packets
2018-10-28 13:30:37 +07:00
Marten Seemann
82508f1562
use tls-tris instead of mint
2018-10-26 16:18:49 +07:00
Marten Seemann
5102294991
use separate chans to signal handshake events and handshake completion
2018-10-26 16:11:25 +07:00
Marten Seemann
b000c32796
use a mock sealing manager in the packet packer tests
2018-10-06 06:49:37 +02:00
Marten Seemann
c1f55ba910
use tls.Config.ServerName for the passing the hostname around
2018-10-02 14:47:18 -07:00
Marten Seemann
06db39836b
move queueing of control frames to the framer
2018-09-28 21:04:57 -06:00