Commit Graph

2590 Commits

Author SHA1 Message Date
Marten Seemann
d47124d14d add more methods to the protocol.ConnectionID
This will make it easier to change the underlying type of the connection
ID (potentially an array is faster than a byte slice).
2018-04-19 16:08:06 +09:00
Marten Seemann
74ccd194f7 remove the omit_connection_id TLS transport parameter 2018-04-19 13:47:02 +09:00
Marten Seemann
52d31dd7ef implement the new header format
Currently, we're only sending and accepting packets with matching source
and destination connection IDs.
2018-04-19 13:46:54 +09:00
Marten Seemann
1a035a265c change the type of Connection ID to byte slice 2018-04-18 22:41:24 +09:00
Marten Seemann
af8971d8c9 move connection ID generation from the utils to the protocol package 2018-04-17 20:21:06 +09:00
Marten Seemann
da7708e470 Merge pull request #1285 from lucas-clemente/rto-probe-packets
only allow sending of retransmissions if these are RTO probe packets
2018-04-17 20:20:34 +09:00
Marten Seemann
f052861775 only allow sending of retransmissions if these are RTO probe packets 2018-04-17 19:58:53 +09:00
Marten Seemann
8a2e4e4421 Merge pull request #1295 from lucas-clemente/fix-1289
close all streams when closing the IETF QUIC streams map
2018-04-17 19:52:51 +09:00
Marten Seemann
f8d28a96fe close all streams when closing the IETF QUIC streams map 2018-04-17 19:29:51 +09:00
Marten Seemann
bffa2cd621 Merge pull request #1301 from lucas-clemente/improve-stream-open-doc
improve API documentation for opening new streams
2018-04-17 19:19:35 +09:00
Marten Seemann
c828742cde Merge pull request #1300 from lucas-clemente/prior-in-flight
call OnPacket{Acked, Lost} with the bytes in flight prior to event
2018-04-17 19:18:25 +09:00
Marten Seemann
e0ae5be52e Merge pull request #1299 from lucas-clemente/fix-1298
fix race condition when the handshake completes
2018-04-17 19:16:33 +09:00
Marten Seemann
6f2e568416 Merge pull request #1297 from lucas-clemente/move-rto-calculation
move calculation of RTO delay to the sent packet handler
2018-04-17 19:15:12 +09:00
Marten Seemann
5f5a8a5aa6 Merge pull request #1296 from lucas-clemente/fix-1292
simplify curve 25519 key generation
2018-04-17 19:13:40 +09:00
Marten Seemann
ad69446377 improve API documentation for opening new streams 2018-04-16 18:49:42 +09:00
Marten Seemann
90d2ac72bd call OnPacket{Acked, Lost} with the bytes in flight prior to event 2018-04-16 18:03:50 +09:00
Marten Seemann
a23c94dd87 fix race condition when the handshake completes
When the handshake completes, the crypto setup closes the handshakeEvent
channel. We need to make sure that the session run loop immediately
selects this case, and not any other case (especially the packet
reception case). Otherwise, the server crypto setup will deadlock,
because the sentSHLO channel won't be closed, and opening of
forward-secure packets will block indefinitely on that channel.
2018-04-16 13:36:06 +09:00
Marten Seemann
2b9b949855 move calculation of RTO delay to the sent packet handler 2018-04-16 11:18:14 +09:00
Marten Seemann
6bc93a00e2 simplify curve 25519 key generation 2018-04-16 10:11:38 +09:00
jared2501
ef286afa3c copy RootCAs to mint config (#1291) 2018-04-15 16:59:02 +08:00
Marten Seemann
4035836ff0 Merge pull request #1286 from lucas-clemente/fix-1271
expose the gQUIC 39 version number in the quic package
2018-04-13 18:52:16 +07:00
Marten Seemann
69a6b3cb9e expose the gQUIC 39 version number in the quic package 2018-04-13 19:38:37 +08:00
Marten Seemann
297a862753 Merge pull request #1287 from lucas-clemente/fix-1240
compute handshake timeout based on the time of the last handshake packet
2018-04-09 16:43:10 +07:00
Marten Seemann
ba9106c1ab compute handshake timeout based on the time of the last handshake packet 2018-04-05 14:39:58 +07:00
Marten Seemann
1b57582497 Merge pull request #1281 from lucas-clemente/spurious-rtos
implement spurious RTO detection
2018-04-04 22:03:31 +07:00
Marten Seemann
89c88e36a8 Merge pull request #1279 from lucas-clemente/fix-1277
use in place decryption for unpacking packets
2018-04-04 22:02:02 +07:00
Marten Seemann
ad1aaa03f9 Merge pull request #1282 from lucas-clemente/update-go
update Go to 1.9.5 and 1.10.1 on the CIs
2018-04-04 18:07:10 +07:00
Marten Seemann
605607d39b implement spurious RTO detection 2018-04-04 17:47:29 +07:00
Marten Seemann
baad0420f8 update Go to 1.9.5 and 1.10.1 on the CIs 2018-04-04 17:19:13 +07:00
Marten Seemann
0ad3c17506 Merge pull request #1273 from lucas-clemente/bytes-in-flight-fixes
only delete the acked packet, but none its retransmissions
2018-04-04 15:58:14 +07:00
Marten Seemann
42d35360bb only delete the acked packet, but none of its retransmissions 2018-04-04 15:35:23 +07:00
Marten Seemann
38efa84e9c use in place decryption for unpacking packets 2018-04-04 14:56:45 +07:00
Marten Seemann
0652eb97a0 add some debug log statements when queueing packets as retransmissions 2018-04-04 14:25:16 +07:00
Marten Seemann
89e719f03b Merge pull request #1278 from lucas-clemente/logging
create a logger interface and use it everywhere
2018-04-04 14:21:04 +07:00
Marten Seemann
948eef3e42 create a logger interface and use it everywhere 2018-04-04 13:03:28 +07:00
Marten Seemann
1e9b3f0bb2 simplify writing of the gQUIC Version Negotiation Packet 2018-04-04 13:03:22 +07:00
Marten Seemann
5e82335005 Merge pull request #1264 from lucas-clemente/ietf-quic-no-trial-decrypt
don't do trial decryption for IETF QUIC
2018-04-03 17:17:31 +07:00
Marten Seemann
d4b67d9d6c Merge pull request #1248 from lucas-clemente/fix-1247
allow empty STREAM frames at offset 0
2018-04-03 16:40:13 +07:00
Marten Seemann
efce19de55 Merge pull request #1270 from lucas-clemente/fix-1269
implement draft-10 changes for QHKDF-Expand
2018-04-03 16:19:40 +07:00
Marten Seemann
ae8d0808cf Merge pull request #1274 from lucas-clemente/remove-unused-packet-method
remove unused method from the ackhandler.Packet
2018-04-03 16:19:02 +07:00
Marten Seemann
294df18d5f Merge pull request #1272 from lucas-clemente/genny-linkedlist
use Genny to generate typed lists, based on Go standard library code
2018-04-03 16:18:37 +07:00
Marten Seemann
36dbb3477f Merge pull request #1266 from lucas-clemente/fnv128a
use the FNV 128a from the standard library
2018-04-03 16:18:04 +07:00
Marten Seemann
302d2a1715 don't use trial decryption for IETF QUIC 2018-03-31 14:29:44 +07:00
Marten Seemann
a298bd01c9 use a gomock packet unpacker 2018-03-31 14:29:44 +07:00
Marten Seemann
6c1eba5848 generate the diversification nonce when creating the server crypto setup 2018-03-31 14:29:44 +07:00
Marten Seemann
69f6427d3c refactor session to use a much smaller crypto setup 2018-03-31 14:29:44 +07:00
Marten Seemann
c6526ad927 replace the SetDiversificationNonce crypto setup method by a chan 2018-03-31 14:29:44 +07:00
Marten Seemann
2fbc994d29 move the unencrypted STREAM frame check from the unpacker to the session 2018-03-31 14:29:44 +07:00
Marten Seemann
538cd2c40b remove unused method from the ackhandler.Packet 2018-03-30 19:17:07 +07:00
Marten Seemann
6f12844094 Merge pull request #1259 from lucas-clemente/sph-send-time
don't set the send time of a packet in the sent packet handler
2018-03-30 17:23:31 +07:00