Commit Graph

2436 Commits

Author SHA1 Message Date
Marten Seemann
8fd7219bfc delete handshake packets from history when receiving a forward-secure packet 2018-02-23 22:15:10 +08:00
Marten Seemann
ecad36a65b Merge pull request #1193 from lucas-clemente/fix-1129
implement the recent key schedule changes
2018-02-23 22:10:03 +08:00
Marten Seemann
b623600dfc Merge pull request #1201 from lucas-clemente/congestion-golint
make golint happy about the congestion tests
2018-02-23 21:45:40 +08:00
Marten Seemann
dcd2659925 implement the recent key schedule changes 2018-02-23 21:43:19 +08:00
Marten Seemann
6fcdcdbea1 make golint happy about the congestion tests 2018-02-23 20:56:07 +08:00
Marten Seemann
c65b1aca4e Merge pull request #1187 from lucas-clemente/buffer-pool-pointer
use pointer to byte slices in the buffer pool
2018-02-23 20:50:24 +08:00
Marten Seemann
7f3799e070 Merge pull request #1198 from lucas-clemente/fix-1168
don't retransmit Initial packets after receiving the first packet
2018-02-23 20:42:15 +08:00
Marten Seemann
4ae811e2d6 Merge pull request #1196 from lucas-clemente/fix-1195
fix IETF Version Negotiation Packet, it doesn't have a packet number
2018-02-23 20:14:06 +08:00
Marten Seemann
07b8821ef7 use pointer to byte slices in the buffer pool
https://staticcheck.io/docs/staticcheck#SA6002 suggests to use pointers
to objects in the sync.Pool.
2018-02-23 18:57:12 +08:00
Marten Seemann
26013b8d64 don't retransmit Initial packets after receiving the first packet 2018-02-23 17:57:42 +08:00
Marten Seemann
d16dea09cc Merge pull request #1166 from lucas-clemente/fix-1163
retransmit Initial packets as Initial packets
2018-02-23 17:25:22 +08:00
Marten Seemann
88da8e2e0a retransmit Initial packets as Initial packets 2018-02-23 15:58:24 +08:00
Marten Seemann
a4bc7362e0 fix IETF Version Negotiation Packet, it doesn't have a packet number 2018-02-23 14:20:47 +08:00
Marten Seemann
4e20ae142c Merge pull request #1190 from lucas-clemente/proxy-closing
properly close the UDP proxy used in the integration tests
2018-02-22 19:59:13 +08:00
Marten Seemann
ab72765a79 Merge pull request #1189 from lucas-clemente/fix-1188
fix race conditions in new streams maps
2018-02-22 19:25:53 +08:00
Marten Seemann
b1095d0661 properly close the UDP proxy used in the integration tests 2018-02-22 19:13:07 +08:00
Marten Seemann
8bf38c9b21 Merge pull request #1192 from lucas-clemente/proxy-logging
add some debug logging for the proxy
2018-02-22 19:12:25 +08:00
Marten Seemann
4fa68b0788 fix race condition in GetStream in outgoing streams map 2018-02-22 18:48:53 +08:00
Marten Seemann
e181f92917 add some debug logging for the proxy 2018-02-22 17:55:48 +08:00
Marten Seemann
77a4bf17ca fix race condition in GetOrOpenStream in incoming streams map 2018-02-22 09:21:31 +08:00
Marten Seemann
6322412eb8 Merge pull request #1153 from lucas-clemente/expose-uni-streams
expose methods for opening and accepting unidirectional streams
2018-02-21 22:46:52 +08:00
Marten Seemann
da49295b52 expose methods for opening and accepting unidirectional streams 2018-02-21 22:19:37 +08:00
Marten Seemann
8c594e1084 Merge pull request #1186 from lucas-clemente/log-vnps
log version negotiation packets
2018-02-21 18:03:57 +08:00
Marten Seemann
77b182ae85 Merge pull request #1185 from lucas-clemente/version-number-uint32
make the version number a uint32
2018-02-21 18:03:45 +08:00
Marten Seemann
a4c0f8776d Merge pull request #1184 from lucas-clemente/go-1.10
update CIs to Go 1.10 and Go 1.9.4
2018-02-21 18:03:30 +08:00
Marten Seemann
ce01e99ba1 log version negotiation packets 2018-02-21 14:55:33 +08:00
Marten Seemann
3371d6bcf9 make the version number a uint32
This will allow us to set it to the IETF draft version numbers as listed
in https://github.com/quicwg/base-drafts/wiki/QUIC-Versions. Those
numbers would overflow a int32.
2018-02-21 13:24:18 +08:00
Marten Seemann
152591ee3f update CIs to Go 1.10 and Go 1.9.4
The version numbers in the travis config are strings, not numbers.
See https://github.com/travis-ci/gimme/issues/132.
2018-02-21 10:49:52 +08:00
Marten Seemann
d19144921d Merge pull request #1176 from lucas-clemente/fix-1711
don't send an ACK frame for Retry packets
2018-02-21 09:42:29 +08:00
Marten Seemann
0f334e000c don't send an ACK frame for Retry packets 2018-02-18 14:17:51 +08:00
Marten Seemann
86b25dddce Merge pull request #1177 from lucas-clemente/transport-parameters-new-sesssion-ticket
don't accept transport parameters in the NewSessionTicket message
2018-02-18 14:03:31 +08:00
Marten Seemann
b97fd403f3 Merge pull request #1178 from lucas-clemente/fix-1173
use an unbuffered chan for the client transport parameters
2018-02-18 14:02:40 +08:00
Marten Seemann
f0eb5a60f1 don't accept transport parameters in the NewSessionTicket message
This was recently removed from the WG draft.
2018-02-08 11:09:42 +08:00
Marten Seemann
c9b95abe7e use an unbuffered chan for the client transport parameters
The client reads the transport parameters from the Encrypted Extensions
message. These transport parameters are passed to the session's run
loop's select statement via a channel.
We have to use an unbuffered channel here to make sure that the session
actually processes the transport parameters immediately.
2018-02-08 11:04:27 +08:00
Marten Seemann
d71850eb2f Merge pull request #1161 from lucas-clemente/send-stream-id-blocked
implement sending of STREAM_ID_BLOCKED frames
2018-02-07 00:32:15 +08:00
Marten Seemann
1248f0fa10 Merge pull request #1165 from lucas-clemente/fix-1164
only accept one TLS sessions for the same connection ID
2018-02-06 13:04:53 +08:00
Marten Seemann
51b6ff0af5 only accept one TLS sessions for the same connection ID 2018-02-06 12:44:06 +08:00
Marten Seemann
1ec720f2f2 implement sending of STREAM_ID_BLOCKED frames 2018-02-06 10:04:40 +08:00
Marten Seemann
4f364a7c24 Merge pull request #1159 from lucas-clemente/stream-id-limits
implement stream ID limits for IETF QUIC
2018-02-06 09:12:17 +08:00
Marten Seemann
8e332c2e13 implement sending of MAX_STREAM_ID frames
We can now impose a limit on the number of stream for IETF QUIC, and
advertise that in the transport parameters during the handshake.
2018-02-06 08:32:16 +08:00
Marten Seemann
e36b8d8e30 throw an error if the peer tries to open a too high stream 2018-02-06 08:30:58 +08:00
Marten Seemann
46e20ce8c9 implement handling of MAX_STREAM_ID frames 2018-02-06 08:30:58 +08:00
Marten Seemann
cd4bcda458 read and write the stream id limits sent in the TLS handshake 2018-02-06 08:30:57 +08:00
Marten Seemann
8b04cd2bde Merge pull request #1151 from lucas-clemente/uni-streams
implement a streams map for handling unidirectional and bidirectional streams
2018-02-06 08:27:51 +08:00
Marten Seemann
c33c4bf91e Merge pull request #1157 from lucas-clemente/stream-ietf-integration-tests
run the integration tests using many streams with IETF QUIC
2018-02-06 08:22:36 +08:00
Marten Seemann
02949853f7 use the new stream maps for the IETF QUIC streams map 2018-02-06 07:53:34 +08:00
Marten Seemann
be6493eff8 implement a map for incoming streams 2018-02-06 07:49:10 +08:00
Marten Seemann
035799a326 implement a map for outgoing streams 2018-02-06 07:49:10 +08:00
Marten Seemann
d0ffeac801 also run the integration tests using many streams with IETF QUIC 2018-02-06 07:42:31 +08:00
Marten Seemann
dadd8071f1 Merge pull request #1156 from lucas-clemente/fix-1155
correctly handle IETF STREAM frames
2018-02-06 07:40:19 +08:00