Marten Seemann
cd359ec5e0
change the type byte of the IETF ACK frame from 0x0e to 0x0d
2018-04-23 15:57:50 +09:00
Marten Seemann
c1d8c8940e
Merge pull request #1306 from lucas-clemente/new-header
...
implement the new IETF QUIC packet header
2018-04-19 18:15:15 +09:00
Marten Seemann
c723339f4d
Merge pull request #1309 from lucas-clemente/ack-binary-search
...
use binary search to check if an ACK acks a packet
2018-04-19 18:01:33 +09:00
Marten Seemann
1ec873f917
use binary search to check if an ACK acks a packet
2018-04-19 17:36:12 +09:00
Marten Seemann
ea055deea2
Merge pull request #1303 from lucas-clemente/refactor-acks
...
refactor the ACK frame
2018-04-19 17:11:06 +09:00
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
52c3e6e863
remove the {Lowest, Largest}Acked from the ACK frame
...
All ACK ranges are now saved in the AckRanges slices. This eliminates a
bunch of special cases for ACKs that don't report any packets missing.
2018-04-18 13:19:42 +09:00
Marten Seemann
7de877fc3f
remove duplicate test cases for the legacy ACK frame
2018-04-18 12:25:26 +09:00
Marten Seemann
ca896f953a
rename AckRange.{First, Last} to AckRange.{Smallest, Largest}
2018-04-18 12:25:26 +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