Marten Seemann
11af98e338
run misspell in gometalinter
2018-02-23 22:39:08 +08:00
Marten Seemann
37aa577560
run ineffassign in gometalinter
2018-02-23 22:39:08 +08:00
Marten Seemann
2f157769c0
Merge pull request #1197 from lucas-clemente/fix-523
...
make the number of incoming streams configurable
2018-02-23 22:37:25 +08:00
Marten Seemann
245af2c596
make the number of incoming streams configurable, for gQUIC
2018-02-23 22:15:31 +08:00
Marten Seemann
58b20c6009
make the number of incoming streams configurable, for IETF QUIC
2018-02-23 22:15:31 +08:00
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
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
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
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
8c594e1084
Merge pull request #1186 from lucas-clemente/log-vnps
...
log version negotiation packets
2018-02-21 18:03:57 +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
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
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
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
cd4bcda458
read and write the stream id limits sent in the TLS handshake
2018-02-06 08:30:57 +08:00
Marten Seemann
80969de93f
fix splitting of STREAM frames for IETF QUIC
...
Move splitting of STREAM frames from the quic package to the wire
package.
2018-02-05 12:02:58 +08:00
Marten Seemann
5974c6c113
correctly determine the length of STREAM frames for IETF QUIC
...
The length of the data has an influence on the length of the frame (if
it contains the data length), and the length can either consume 1 or 2
bytes due to variable length encoding.
2018-02-05 12:02:49 +08:00
Marten Seemann
3b82628dbe
internalize ackhandler and congestion
2018-02-02 08:40:56 +08:00
Marten Seemann
1cc209e4fb
update mint, and adapt to the new use of the extension handler
2018-02-02 08:18:29 +08:00
Marten Seemann
29307c5067
Merge pull request #1132 from lucas-clemente/perspective-stringer
...
add a string representation for the perspective
2018-02-01 23:51:29 +08:00
Marten Seemann
fbeba1f73a
make sure that at least every 20th ACK is retransmittable
...
This is important because we need to make sure that we can remove old
ACK ranges from the received packet history. The logic we implemented
before was not correct, since we only made sure that every 20th packet
would be retransmittable, but we didn't have any guarantee that this
packet would also contain an ACK frame.
2018-02-01 17:11:05 +08:00
Marten Seemann
2ec147ccfa
add a string representation for the perspective
2018-02-01 12:59:24 +08:00
Marten Seemann
fc5f54824a
only send one ACK for every 10 retransmittable packets
2018-01-28 17:59:37 +07:00
Marten Seemann
9ef3a47da5
send multiple packets at once, if the pacing delay is very small
...
This is an optimization to avoid waking of the run loop every couple of
microseconds.
2018-01-23 09:13:44 +11:00
Marten Seemann
5ef89733ae
implement packet pacing
2018-01-21 14:27:37 +11:00
Marten Seemann
c3cc35363b
fire the timer twice, if reset to the same deadline
2018-01-21 14:10:15 +11:00
Marten Seemann
f33243fb41
Merge pull request #1114 from lucas-clemente/connection-state
...
expose the ConnectionState in the Session
2018-01-12 17:09:52 +07:00
Marten Seemann
9b3139a1d6
use the packet receive time in the receivedPacketHandler
...
By passing the packet receive time to the receivedPacketHandler we can
get rid of two time.Now() syscalls.
2018-01-12 11:30:39 +07:00
Marten Seemann
66fd3b5195
expose the ConnectionState in the Session
...
The ConnectionState contains basic details about the QUIC connection.
2018-01-11 16:27:42 +07:00
Marten Seemann
f8e5a13c7d
use a gomock congestion in tests
2018-01-09 16:42:44 +07:00
Marten Seemann
de4157f9ad
implement parsing and writing of STREAM_ID_BLOCKED frames
2018-01-04 17:02:14 +07:00
Marten Seemann
5afe35328a
implement parsing and writing of MAX_STREAM_ID frames
2018-01-04 17:02:10 +07:00
Marten Seemann
b7b50572eb
use the timescale factor for flow control tests on CIs
2018-01-03 10:26:50 +07:00
Marten Seemann
5371f804f8
don't report blocked streams as active for sending data
2018-01-03 00:18:33 +07:00
Marten Seemann
99a2853e7d
remove non forward-secure dialing
...
This was broken for a long time, and won't be available when using the
TLS 1.3 handshake.
2018-01-02 23:26:55 +07:00
Marten Seemann
a02a6197c2
fix race condition in the client crypto setup tests
2017-12-26 15:35:00 +07:00
Marten Seemann
ad3fbd3a01
Merge pull request #1071 from lucas-clemente/update-mint
...
update mint
2017-12-22 16:35:42 +07:00
Marten Seemann
20816bb866
fix flaky flow controller test
2017-12-22 16:11:38 +07:00
Marten Seemann
14d4e5e9ec
update mint
...
mint recently changed the signature of ExtensionList.Find.
2017-12-22 16:10:37 +07:00
Marten Seemann
15ab0ae443
add a HasWindowUpdate method to the stream flow controller
2017-12-21 18:58:55 +07:00
Marten Seemann
f7526b9883
rewrite flow control auto-tuning
2017-12-21 18:02:14 +07:00
Marten Seemann
ac05343b00
rename window increment to window size in the flow controller
...
No functional change expected.
2017-12-21 17:58:03 +07:00
Marten Seemann
d4f904b55b
regenerate all gomocks after gomock output format was changed
...
No functional change expected.
2017-12-21 17:30:51 +07:00
Marten Seemann
f2a6c25124
remove unneeded mockgen command
2017-12-21 13:38:13 +07:00
Marten Seemann
d2e31c04ab
generate the streamI mock in the quic package
...
By doing so, we can mock private methods of the stream, so they cannot
be type-asserted by users of quic-go.
2017-12-20 10:42:07 +07:00