Commit Graph

1968 Commits

Author SHA1 Message Date
Marten Seemann
61f558a2b6 Merge pull request #579 from lucas-clemente/stream-deadlines
implement stream deadlines
2017-07-16 12:08:24 +07:00
Marten Seemann
56155986e9 read the CI timescale factor from an environment variable 2017-07-15 23:51:24 +07:00
Marten Seemann
cfc7d1604d scale all deadline duration in stream tests on the CIs by 20
This allows us to run the tests faster locally. On the CIs, where the
timing is less accurate, the tests take longer, but won't be flaky.
2017-07-15 23:46:15 +07:00
Marten Seemann
e09993403d add stream deadlines to the Stream interface 2017-07-15 23:46:15 +07:00
Marten Seemann
1acdc5f18e implement write deadlines 2017-07-15 23:46:15 +07:00
Marten Seemann
5720e8af7d implement read deadlines 2017-07-15 23:46:15 +07:00
Marten Seemann
a70ae86f5a replace the sync.Cond for stream.Write() by a channel 2017-07-15 23:46:15 +07:00
Marten Seemann
5fbd52158f replace the sync.Cond for stream.Read() by a channel 2017-07-15 23:46:15 +07:00
Marten Seemann
bd693193ed Merge pull request #739 from lucas-clemente/fix-738
fix timestamp test such that it works in all timezones
2017-07-15 20:50:58 +07:00
Marten Seemann
e87c8cafcf Merge pull request #740 from lucas-clemente/benchmark-tests-race-detector
run benchmark tests with the race detector on Travis
2017-07-15 20:48:00 +07:00
Marten Seemann
584e23454e run benchmark tests with the race detector on Travis 2017-07-15 14:54:37 +07:00
Marten Seemann
33260d91a2 fix timestamp test such that it works in all timezones 2017-07-15 11:23:42 +07:00
Marten Seemann
5de4d3ccb5 Merge pull request #736 from lucas-clemente/fix-735
implement a function to close the h2quic.RoundTripper and run it as a finalizer
2017-07-12 20:44:59 +07:00
Marten Seemann
65cea185bd use a finalizer to close the h2quic.RoundTripper
The finalizer is executed when the RoundTripper is garbage collected.
This is not a perfect solution, since there are situations when an
unneeded RoundTripper is not garbage collected, e.g. when the program
exits before the GC ran. In those cases, the server will run into the
idle timeout and eventually close the connection  on its side.
2017-07-12 19:20:21 +07:00
Marten Seemann
67e5d4aa98 Merge pull request #661 from lucas-clemente/drop-go17
drop support for Go 1.7
2017-07-12 18:57:10 +07:00
Marten Seemann
bf6030a855 implement a function to close the h2quic.RoundTripper
h2quic.RoundTripper.Close() closes all QUIC connections that this
roundtripper has used.
2017-07-12 18:56:47 +07:00
Marten Seemann
ac63554791 drop support for Go 1.7 2017-07-12 18:43:18 +07:00
Lucas Clemente
14687ee1ec Merge pull request #708 from lucas-clemente/lucas-clemente-patch-1
Add Go 1.9beta2 to travis config
2017-07-12 12:08:32 +02:00
Marten Seemann
5b1d10e395 Merge pull request #731 from lucas-clemente/fix-730
don't close the client connection when the Public Header can't be parsed
2017-07-12 16:57:08 +07:00
Marten Seemann
964db88fbb Merge pull request #733 from lucas-clemente/fix-732
don't send PINGs before the handshake is completed
2017-07-12 16:54:59 +07:00
Lucas Clemente
5ac8e1e547 Add Go 1.9beta2 to travis config 2017-07-12 11:52:50 +02:00
Marten Seemann
7341282f27 don't send PINGs before the handshake is completed 2017-07-12 11:14:03 +07:00
Marten Seemann
79642d502e don't close the client connection when the Public Header can't be parsed
When receiving an unparseable packet with a spoofed remote address, we
should not close the connection.
2017-07-11 21:36:36 +07:00
Marten Seemann
58899d0e02 Merge pull request #729 from lucas-clemente/fix-34
implement receiving of Public Resets for the client
2017-07-11 21:00:14 +07:00
Marten Seemann
0867352b26 implement receiving of Public Resets for the client
When a Public Reset is received, the client validates if it was sent
from the correct remote address and if the connection ID matches. When a
valid Public Reset is received, the connection is closed immediately.
2017-07-11 20:42:55 +07:00
Marten Seemann
3176a2aefa Merge pull request #728 from lucas-clemente/various-session-improvements
various session improvements
2017-07-11 19:05:53 +07:00
Marten Seemann
4898f4205c properly put back the packet buffer when sending a packet fails 2017-07-11 18:43:27 +07:00
Marten Seemann
1d120f5ea1 remove unneeded check for nil packets in session.sendConnectionClose
This was needed when logic in the packet packer was a lot more
complicated. Now that packing a CONNECTION_CLOSE is a separate code
path, this check isn't needed anymore.
2017-07-11 18:43:27 +07:00
Marten Seemann
6973d71697 remove unneeded if statement in session.logPacket 2017-07-11 18:43:27 +07:00
Marten Seemann
c80bd6ff2c introduce a session.closeRemote, simplify error handling 2017-07-11 17:48:42 +07:00
Marten Seemann
6f48a1ebb4 Merge pull request #727 from lucas-clemente/fix-another-flaky-stk-test
fix check for STK generation time
2017-07-11 16:47:27 +07:00
Marten Seemann
d72c0c80bc fix check for STK generation time 2017-07-11 16:33:06 +07:00
Marten Seemann
598d36ae96 Merge pull request #722 from lucas-clemente/fix-677
expose the quic.Config in h2quic.Server and h2quic.RoundTripper
2017-07-10 23:16:50 +08:00
Marten Seemann
ee6ca8dfb4 expose the quic.Config in the h2quic.RoundTripper 2017-07-10 22:00:03 +07:00
Marten Seemann
abb9594af8 change order of function parameters for the h2quic.client constructor 2017-07-10 22:00:03 +07:00
Marten Seemann
cb81a95ceb make the dependency-injected dialAddr in h2quic.client a global variable
It's only used for testing, so there's no need to have in each
h2quic.client instance.
2017-07-10 21:59:58 +07:00
Marten Seemann
d94b57fe29 expose the quic.Config in the h2quic.Server 2017-07-10 21:57:31 +07:00
Marten Seemann
79c7ed4ed1 dependency-inject quic.Listen and quic.ListenAddr in h2quic.Server 2017-07-10 21:57:31 +07:00
Marten Seemann
e21f74d317 Merge pull request #725 from lucas-clemente/fix-700
increase RTT and make assertion more lenient in handshake test
2017-07-10 22:55:33 +08:00
Marten Seemann
e291066e48 increase RTT and make assertion more lenient in handshake test 2017-07-10 17:21:52 +08:00
Marten Seemann
3157e2da99 Merge pull request #719 from lucas-clemente/fix-718
improve proxy tests
2017-07-07 17:08:27 +02:00
Marten Seemann
32bc70ba0c fix flaky proxy test 2017-07-07 12:23:34 +02:00
Marten Seemann
c776a35b68 bind proxy to random port in proxy tests 2017-07-07 12:23:34 +02:00
Lucas Clemente
dc3b85f020 Merge pull request #537 from lucas-clemente/wip-no-docker
Replace docker with a directly launched Chrome for integration tests
2017-07-07 12:18:25 +02:00
Lucas Clemente
b6b4283d3f Retry starting Chrome if it doesn't hit the endpoints 2017-07-07 12:06:16 +02:00
Lucas Clemente
e0ba8b082d Replace docker with a directly launched Chrome for integration tests
The benefits:

- Speed up chrome tests (from 160s to 34s on my machine).
- Allow us to remove docker, which caused quite a few headaches.
- Gets us a more current Chrome, so now we run tests against all
  supported versions.
- We don't touch the FS anymore.
- We no longer depend on sudo for travis, which means we can use
  their new container-based infrastructure. This also speeds up our
  tests :)

Tests are now implemented in javascript; the server detects when
they are complete and kills Chrome.

Fixes #417.
2017-07-07 12:05:48 +02:00
Lucas Clemente
bbf8977f64 Change h2quic.Server.Serve() to accept a net.PacketConn 2017-07-05 21:02:13 +02:00
Lucas Clemente
bf8ae2bb50 Pass -v to ginkgo in integrationtests 2017-07-05 21:02:13 +02:00
Lucas Clemente
bda9b4264f Merge pull request #593 from krish7919/525-make-keepalive-configurable
Add keepalive support for clients in quic.Config
2017-07-05 20:38:29 +02:00
krish7919 (Krish)
755dedf1ff Add keepalive support for clients in quic.Config
Fixes #525.
2017-07-05 20:29:28 +02:00