Commit Graph

3253 Commits

Author SHA1 Message Date
Marten Seemann
01abf92854 Merge pull request #1570 from lucas-clemente/move-pngen
move the packet number generator to the ackhandler package
2018-11-02 17:42:07 +07:00
Marten Seemann
dbbbfd955e move tracking of skipped packets to the packet number generator 2018-11-02 17:14:31 +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
ebbf839fa4 move the packet number generator to the ackhandler package 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
a18b5c0335 Merge pull request #1576 from lucas-clemente/fix-crypto-setup-test
fix go routine leak in crypto setup test
2018-11-02 17:13:15 +07:00
Marten Seemann
0fac716274 fix go routine leak in crypto setup test 2018-11-02 16:46:57 +07:00
Marten Seemann
4c7c6c3f16 Merge pull request #1575 from lucas-clemente/remove-quic-clients
don't import the quic-clients for the self integration test
2018-11-02 16:24:20 +07:00
Marten Seemann
5f5be50fbd Merge pull request #1571 from lucas-clemente/fix-travis-config
fix Travis configuration to actually run the integration tests
2018-11-02 16:01:57 +07:00
Marten Seemann
13b4781d0f don't import the quic-clients for the self integration test 2018-11-02 16:01:16 +07:00
Marten Seemann
3f3fe2b4d9 fix Travis configuration to actually run the integration tests 2018-11-01 18:14:34 +07:00
Marten Seemann
257c4732c3 Merge pull request #1566 from lucas-clemente/better-stream-helpers
simplify the streamsMap by using the stream helper functions
2018-11-01 16:22:20 +07:00
Marten Seemann
2bfe8d0b77 Merge pull request #1568 from lucas-clemente/close-frames
implement changes to the CONNECTION_CLOSE frame
2018-11-01 15:51:14 +07:00
Marten Seemann
44243b4f52 use the stream helper function in the streamsMap 2018-11-01 15:50:47 +07:00
Marten Seemann
5768b492d7 introduce a type for unidirctional and bidirectional streams 2018-11-01 15:50:47 +07:00
Marten Seemann
4e87fb4456 Merge pull request #1565 from lucas-clemente/fix-1449
split the flow control transport parameters
2018-11-01 15:50:13 +07:00
Marten Seemann
0f25fbd15b Merge pull request #1569 from lucas-clemente/remove-header-len-error-return
remove the error return value from wire.Header.GetLength()
2018-11-01 15:49:52 +07:00
Marten Seemann
716e8f2d0a remove the error return value from wire.Header.GetLength
Using an invalid packet number length would error on Header.Write(), so
it's not necessary to check this on GetLength().
2018-11-01 13:49:36 +07:00
Marten Seemann
9981026839 split the flow control transport parameters 2018-11-01 13:09:29 +07:00
Marten Seemann
73ac6b14bf implement changes to the CONNECTION_CLOSE frame 2018-10-31 11:21:51 +07:00
Marten Seemann
f82c583957 make the error code a uint16 2018-10-31 10:49:44 +07:00
Marten Seemann
c1a4d3d215 Merge pull request #1562 from lucas-clemente/flow-control-transport-parameters
split the initial flow control transport parameters
2018-10-30 16:32:34 +07:00
Marten Seemann
14a4464266 implement some stream ID helper functions 2018-10-30 12:52:48 +07:00
Marten Seemann
a1acfc3045 rename {Stream,Connection}FlowControlWindow to InitialMax{Stream}Data 2018-10-30 12:52:42 +07:00
Marten Seemann
74c5e9a26c move the definition of transport parameter IDs 2018-10-30 10:37:33 +07:00
Marten Seemann
71db96a486 Merge pull request #1560 from lucas-clemente/drop-gquic
drop support for gQUIC
2018-10-30 10:36:04 +07:00
Marten Seemann
3266e36811 drop support for gQUIC 2018-10-30 10:20:39 +07:00
Marten Seemann
8f8ed03254 Merge pull request #1558 from lucas-clemente/remove-handshake-complete-chan
don't pass the handshakeCompleteChan to the TLS crypto setup
2018-10-29 18:05:31 +07:00
Marten Seemann
1227dc8a24 remove the handshakeCompleteChan from the TLS crypto setup
In TLS, we know that the handshake completed when RunHandshake() returns.
2018-10-29 17:33:06 +07:00
Marten Seemann
dd6436c093 Merge pull request #1557 from lucas-clemente/crypto-setup-close
close the TLS crypto setup when the session closes
2018-10-29 17:32:21 +07:00
Marten Seemann
8344dc8b64 close the TLS crypto setup when session closes 2018-10-29 15:06:41 +07:00
Marten Seemann
06f96f4b6e wait until the Handshake() go routine returned before returning Close() 2018-10-29 15:05:58 +07:00
Marten Seemann
4a326ad00a implement closing of the TLS crypto setup
When the crypto setup is closed, the go rounine running the
qtls.Handshake() needs to return.
2018-10-29 15:05:58 +07:00
Marten Seemann
35c0721b88 Merge pull request #1559 from lucas-clemente/fix-vnp-test
make version negotiation tests work with only one supported versions
2018-10-29 15:04:31 +07:00
Marten Seemann
3b8fe49874 Merge pull request #1561 from lucas-clemente/add-acks-to-crypto-packets
add ACK frames to crypto packets
2018-10-29 14:59:53 +07:00
Marten Seemann
13ccdc759f Merge pull request #1556 from lucas-clemente/server-initial-retransmissions
allow the server to retransmit Initial packets
2018-10-29 14:57:19 +07:00
Marten Seemann
e470d71c3a add ACK frames to crypto packets 2018-10-29 13:34:32 +07:00
Marten Seemann
2d65c2016e make version negotiation tests work with only one supported versions 2018-10-29 10:42:15 +07:00
Marten Seemann
eeab7a5fca allow the server to retransmit Initial packets 2018-10-28 13:30:37 +07:00
Marten Seemann
7fe93a726f Merge pull request #1555 from lucas-clemente/remove-mint-syntax
remove leftover vendored mint/syntax
2018-10-26 20:33:23 +07:00
Marten Seemann
a54979a6ad Merge pull request #1552 from lucas-clemente/crypto-stream-empty-check
check that the crypto stream is empty when switching encryption levels
2018-10-26 17:59:36 +07:00
Marten Seemann
b63c81f0bf try decrypting undecryptable packets when the encryption level changes
There's no need to do this asynchronously any more when using TLS.
2018-10-26 17:10:00 +07:00
Marten Seemann
387c28d707 when the encryption level changes, reject data on that crypto stream
There are two checks that need to be performed:
1. the crypto stream must not have any more data queued for reading
2. when receiving CRYPTO frames for that crypto stream afterwards, they
must not exceed the highest offset received on that stream
2018-10-26 17:09:52 +07:00
Marten Seemann
7c6141b1cc remove leftover vendored mint/syntax 2018-10-26 16:43:30 +07:00
Marten Seemann
fe442e4d19 use a mock crypto stream in the crypto stream manager tests 2018-10-26 16:40:29 +07:00
Marten Seemann
19e5feef57 move TLS message header parsing logic to the crypto stream 2018-10-26 16:40:29 +07:00
Marten Seemann
d1f49ad2d0 Merge pull request #1542 from lucas-clemente/crypto-frame
use a modified version of tls-tris instead of mint
2018-10-26 16:39:15 +07:00
Marten Seemann
2dbc29a5bd fix error handling in the TLS crypto setup
There are two ways that an error can occur during the handshake:
1. as a return value from qtls.Handshake()
2. when new data is passed to the crypto setup via HandleData()
We need to make sure that the RunHandshake() as well as HandleData()
both return if an error occurs at any step during the handshake.
2018-10-26 16:18:53 +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