Commit Graph

2294 Commits

Author SHA1 Message Date
Marten Seemann
b7b50572eb use the timescale factor for flow control tests on CIs 2018-01-03 10:26:50 +07:00
Marten Seemann
843a0786fc Merge pull request #1084 from lucas-clemente/fix-1083
fix flaky send stream test
2018-01-03 09:55:32 +07:00
Marten Seemann
ec339f6702 Merge pull request #1090 from lucas-clemente/better-h2quic-client-errors
improve error handling in the h2quic client for header stream handling
2018-01-03 09:36:53 +07:00
Marten Seemann
f2a1206c20 fix flaky send stream test 2018-01-03 09:32:09 +07:00
Marten Seemann
2ccd795a61 Merge pull request #1073 from lucas-clemente/improve-send-stream-tests
improve send stream tests
2018-01-03 09:30:18 +07:00
Marten Seemann
fc4adb4775 improve error handling in the h2quic client for header stream handling
When the underlying QUIC stream is closed, the close error should be
returned. This always happens when receiving a CONNECTION_CLOSE from the
server.
Furthermore, this adds a missing break statement in the case when
receiving an invalid HTTP request.
2018-01-03 09:07:18 +07:00
Marten Seemann
0311bff1f2 improve the send stream tests 2018-01-03 08:46:46 +07:00
Marten Seemann
2f6dfefe59 Merge pull request #1079 from lucas-clemente/fix-1078
don't create stream 1 in the streamsMap on GetOrOpenStream (for gQUIC)
2018-01-03 08:42:33 +07:00
Marten Seemann
02c6b9f00c Merge pull request #1072 from lucas-clemente/blocked-streams-are-inactive
don't report blocked streams as active for sending data
2018-01-03 08:42:11 +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
c626137608 Merge pull request #1082 from lucas-clemente/fix-mockgen-vendor-problem
fix mockgen script which caused a probem with the vendored curve25519
2018-01-03 00:16:29 +07:00
Marten Seemann
38281575a2 don't create stream 1 in the streamsMap on GetOrOpenStream (for gQUIC) 2018-01-02 23:57:20 +07:00
Marten Seemann
79c95e1161 fix mockgen script which caused a probem with the vendored curve25519
curve25519 uses Go compiler directives (go:noescape), which apparently
mockgen doesn't understand and therefore throws errors.
2018-01-02 23:55:12 +07:00
Marten Seemann
091b6b2602 Merge pull request #1087 from lucas-clemente/remove-non-forward-secure-dialing
remove non forward-secure dialing
2018-01-02 23:48:00 +07:00
Marten Seemann
924cd08ebb Merge pull request #1069 from lucas-clemente/queue-stream-data-from-stream
introduce a queue of active streams for sending data
2018-01-02 23:36:22 +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
d9c107b034 introduce a queue of active streams in the streamFramer
The queue holds all streams that have data to send. When stream.Write or
stream.Close are called, a stream is added to this queue. It is removed
from the queue when all available (at that moment) data was sent.
This way, we don't need the round robin scheduling (which, for every
packet sent, asked every single open stream if it had data) any more.
2018-01-02 23:24:44 +07:00
Marten Seemann
a5d3eaea61 rename the scheduleSending callback to onHasStreamData in the stream
This callback also takes the stream ID, which will later be used to
create a queue of streams that have data for writing available.
2018-01-02 23:24:44 +07:00
Marten Seemann
bd60e996dc Merge pull request #1080 from lucas-clemente/travis-go-1.10-beta
also run the Travis tests with Go 1.10 beta
2018-01-02 22:54:29 +07:00
Marten Seemann
49f7fe3cbc Merge pull request #1086 from lucas-clemente/fix-1085
fix race condition in the client crypto setup tests
2018-01-02 22:50:37 +07:00
Marten Seemann
ee1eeebe8a Merge pull request #1091 from lucas-clemente/close-example-roundtripper
close the h2quic.RoundTripper in the example client
2018-01-02 22:49:49 +07:00
Marten Seemann
3e9c8317db close the h2quic.RoundTripper in the example client
While it's not necessary, it's best practice to close the RoundTripper.
That way, QUIC can do a proper connection shutdown.
2017-12-30 13:45:11 +07:00
Marten Seemann
a02a6197c2 fix race condition in the client crypto setup tests 2017-12-26 15:35:00 +07:00
Marten Seemann
f42efdbca9 also run the Travis tests with Go 1.10 beta 2017-12-26 08:38:27 +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
ab0dd7f1f3 Merge pull request #1075 from lucas-clemente/fix-1074
fix flaky flow controller test
2017-12-22 16:35:35 +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
a6eca911de Merge pull request #1070 from lucas-clemente/vendor-mint
vendor mint
2017-12-22 15:50:14 +07:00
Marten Seemann
22679ddb14 vendor mint 2017-12-22 10:13:58 +07:00
Marten Seemann
ae739f7cd2 Merge pull request #1068 from lucas-clemente/fix-1067
call the scheduleSending callback when stream.Close is called
2017-12-22 08:46:36 +07:00
Marten Seemann
0d6032a065 call the scheduleSending callback when stream.Close is called
The stream needs to send the STREAM frame containing the FIN bit.
2017-12-21 21:10:17 +07:00
Marten Seemann
45190882cc Merge pull request #1065 from lucas-clemente/fix-window-update-race
fix window update race
2017-12-21 19:18:52 +07:00
Marten Seemann
d195085f65 don't queue the complete window update, but only the stream ID 2017-12-21 19:03:52 +07:00
Marten Seemann
15ab0ae443 add a HasWindowUpdate method to the stream flow controller 2017-12-21 18:58:55 +07:00
Marten Seemann
8759fa2d8e Merge pull request #1063 from lucas-clemente/flowcontrol-autotuning
rewrite flow control auto-tuning
2017-12-21 18:44:05 +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
8c0d8bb568 Merge pull request #1061 from lucas-clemente/fix-1051
fix race when dialing a new connection
2017-12-21 17:44:28 +07:00
Marten Seemann
820551bf22 Merge pull request #1064 from lucas-clemente/regenerate-gomocks
regenerate all gomocks after gomock output format was changed
2017-12-21 17:43:32 +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
552be1f403 Merge pull request #1062 from lucas-clemente/remove-unneeded-mockgen-line
remove unneeded mockgen command
2017-12-21 17:29:43 +07:00
Marten Seemann
f2a6c25124 remove unneeded mockgen command 2017-12-21 13:38:13 +07:00
Marten Seemann
2a0b71c66b fix race when dialing a new connection
When a connection error occurs, Dial can only return the error if the
session is closed with that error. Therefore, the session must be
created before client.listen() is called.
2017-12-21 13:25:49 +07:00
Marten Seemann
edb5fd751c Merge pull request #1058 from lucas-clemente/fix-stopping-of-testserver
fix stopping of testserver
2017-12-21 10:43:46 +07:00
Marten Seemann
e4e74e0873 properly stop the testserver at the end of a test in integration tests 2017-12-20 21:19:00 +07:00
Marten Seemann
ed212b789c Merge pull request #1057 from lucas-clemente/fix-h2quic-server-race
make h2quic.Server.ListenAndServe error if it was closed before
2017-12-20 21:16:48 +07:00
Marten Seemann
98595e8ca5 Merge pull request #1052 from lucas-clemente/travis-cert-expiry
print quic.clemente.io certificate expiration date in travis logs
2017-12-20 17:52:49 +07:00
Marten Seemann
a1058c0d97 make h2quic.Server.ListenAndServe error if it was closed before 2017-12-20 17:26:32 +07:00
Marten Seemann
5ff837cccd Merge pull request #1053 from lucas-clemente/server-close-wait-for-serve
wait for serve() to return before returning from server.Close()
2017-12-20 17:24:09 +07:00