Commit Graph

1757 Commits

Author SHA1 Message Date
Marten Seemann
584e23454e run benchmark tests with the race detector on Travis 2017-07-15 14:54:37 +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
Marten Seemann
649933d17b Merge pull request #713 from lucas-clemente/remove-tlsconfig-from-quicconfig
remove the tls.Config from the quic.Config
2017-07-03 22:45:13 +02:00
Lucas Clemente
7906822e98 Merge pull request #714 from lucas-clemente/go1.9-cookie-fix
Fix cookie test for Go1.9
2017-07-03 22:17:55 +02:00
Marten Seemann
a851aaacda remove the tls.Config from the quic.Config
The tls.Config now is a separate parameter to all Listen and Dial
functions in the quic package.
2017-07-03 22:12:09 +02:00
Lucas Clemente
890b801a60 Merge pull request #716 from lucas-clemente/certs
Update certs
2017-07-03 22:10:35 +02:00
Lucas Clemente
65dc8f139f Update certs 2017-07-03 21:58:47 +02:00
Lucas Clemente
5c28e8d164 Fix cookie test for Go1.9 2017-07-03 13:57:11 +02:00
Marten Seemann
1db20be62e Merge pull request #711 from lucas-clemente/fix-710
fix flaky STK test
2017-06-27 18:20:52 +02:00
Marten Seemann
73bd3772d5 fix flaky STK test 2017-06-27 18:01:19 +02:00
Marten Seemann
1c1d7cc68b Merge pull request #706 from lucas-clemente/fix-705
rename the h2quic.QuicRoundTripper to h2quic.RoundTripper
2017-06-26 20:17:59 +02:00
Marten Seemann
9df3380bc6 rename the h2quic.QuicRoundTripper to h2quic.RoundTripper 2017-06-26 19:14:41 +02:00
Marten Seemann
a1680e8670 Merge pull request #702 from lucas-clemente/fix-691
fix INVALID_STREAM error when a retransmission for a server-side stream arrives after the stream is closed
2017-06-23 10:46:32 +02:00