Marten Seemann
17a0541edb
use the quic.Config to set the QUIC version in the Chrome tests
2017-09-05 19:30:14 +02:00
Marten Seemann
5751b599ee
use atomics in the Chrome test HTTP handlers
...
This fixes a race condition in these tests.
2017-09-05 19:30:14 +02:00
Marten Seemann
7d446253c4
use the quic.Config to set the QUIC version in client integration tests
...
This fixes a race condition in that test.
2017-09-05 19:30:14 +02:00
Marten Seemann
682d8b1c7a
fix race condition in the handshake RTT tests
2017-09-05 19:30:14 +02:00
Marten Seemann
e513cb7ad2
fix multiple race conditions in the proxy tests
2017-09-05 19:30:14 +02:00
Marten Seemann
508586ea7e
fix a race condition in server integration test setup
2017-09-05 19:30:14 +02:00
Marten Seemann
03de09b236
Merge pull request #809 from lucas-clemente/fix-808
...
fix go routine leaks in client tests
2017-08-31 18:32:22 +07:00
Marten Seemann
500eb0d50d
Merge pull request #804 from lucas-clemente/delete-empty-test-files
...
delete empty files in the integration tests folder
2017-08-31 18:16:57 +07:00
Marten Seemann
fa2ecefa31
fix go routine leaks in client tests
2017-08-31 17:55:48 +07:00
Marten Seemann
f5abd5d858
delete empty files in the integration tests folder
...
These empty files were necessary in Go 1.8, but are obsolete now.
2017-08-31 17:18:40 +07:00
Marten Seemann
e7d1d225dc
Merge pull request #807 from lucas-clemente/type-aliases
...
use type aliases to clean up the API
2017-08-31 17:06:46 +07:00
Marten Seemann
60f5c660c6
export flow control window sizes as uint64 in quic.Config
2017-08-31 16:37:03 +07:00
Marten Seemann
e05f5ce594
remove obsolete documentation for the quic.Config
2017-08-31 16:37:03 +07:00
Marten Seemann
3c4a10a5e4
use type aliases to export types declared in the protocols package
...
Type aliases were introduced with Go 1.9, so we must drop support for
older Go versions now.
2017-08-31 16:36:52 +07:00
Marten Seemann
95a971f322
make the flow control package internal
2017-08-30 00:27:44 +07:00
Marten Seemann
f1ada87dcf
make the protocol package internal
2017-08-30 00:19:44 +07:00
Marten Seemann
524ecb5827
move the Public Reset to the wire package
2017-08-29 23:58:27 +07:00
Marten Seemann
ed522ebbce
make wire an internal package
2017-08-29 23:51:56 +07:00
Marten Seemann
1794636220
more the PublicHeader to the wire package
2017-08-29 23:45:38 +07:00
Marten Seemann
88afad8722
rename package frames to wire
2017-08-29 23:27:15 +07:00
Marten Seemann
5281d5b65d
Merge pull request #792 from lucas-clemente/fix-441
...
add a quic.Config option to configure the idle timeout
2017-08-29 18:48:56 +07:00
Marten Seemann
24119d5a25
Merge pull request #801 from lucas-clemente/fix-800
...
make sure that the SHLO was sent before returning Listener.Accept
2017-08-29 18:48:23 +07:00
Marten Seemann
5152019554
don't use an idle timeout before the handshake has completed
...
This simplifies the timeout logic a bit. Before the handshake has
completed, the only timeout is the handshake timeout. After the
handshake has completed, the only timeout is the idle connection timeout.
2017-08-29 15:47:56 +07:00
Marten Seemann
293f26d292
Merge pull request #806 from lucas-clemente/listener-debug-message
...
print a debug message when the server is started
2017-08-29 15:11:46 +07:00
Marten Seemann
7ec09d2488
print a debug message when the server is started
2017-08-29 11:55:28 +07:00
Marten Seemann
bb670be93a
make sure that the SHLO was sent before returning Listener.Accept
...
This fixes a race condition: In the server crypto setup, we would send
protocol.EncryptionForwardSecure on the aeadChan as soon as the SHLO was
composed, but before it was written to the crypto stream. This lead to
Listener.Accept returning the session already. If the server was ready
to write a lot of data then, this data could be sent before the crypto
setup would write on the crypto stream, therefore sending a lot of
undecryptable packets to the client, which would eventually lead to a
connection error (too many undecryptable packets).
2017-08-29 10:48:10 +07:00
Marten Seemann
71e82677e1
add a quic.Config option to configure the idle timeout
2017-08-28 17:58:39 +07:00
Marten Seemann
e398d5409a
set the idle timeout during the handshake to half the handshake timeout
2017-08-28 17:58:39 +07:00
Marten Seemann
a6719bf417
Merge pull request #762 from lucas-clemente/improve-travis-output
...
print commands on Travis
2017-08-28 17:52:14 +07:00
Marten Seemann
3414cf8b49
Merge pull request #778 from lucas-clemente/reduce-travis-logging
...
disable verbose logging for integration tests on Travis
2017-08-28 17:50:47 +07:00
Marten Seemann
60be7e1e81
Merge pull request #798 from lucas-clemente/go1.9
...
use Go 1.9 on CIs
2017-08-28 15:32:02 +07:00
Marten Seemann
8ff8637bb8
don't print Chrome output
2017-08-28 15:28:07 +07:00
Marten Seemann
dc20c37f24
Merge pull request #799 from lucas-clemente/privatize-peek-conn-id
...
make PeekConnectionID a private method
2017-08-28 15:09:45 +07:00
Marten Seemann
f4aa2d5b0d
improve logging on CIs
...
* make the logging on Travis less verbose
* log every test on AppVeyor
2017-08-28 10:07:10 +07:00
Marten Seemann
b699a92bd5
print commands on Travis
2017-08-27 18:09:01 +07:00
Marten Seemann
0665c08b88
make PeekConnectionID a private method
2017-08-27 17:55:38 +07:00
Marten Seemann
4d5bc253f0
use Go 1.9 on CIs
2017-08-27 12:42:15 +07:00
Marten Seemann
3390564e98
Merge pull request #782 from lucas-clemente/quic39
...
add support for QUIC 39
2017-08-24 17:59:51 +07:00
Marten Seemann
2b683be36a
add QUIC 39 to supported versions
...
The Chrome installed on Travis doesn't support QUIC 39 yet.
2017-08-24 17:05:57 +07:00
Marten Seemann
a9e2a28315
Merge pull request #796 from lucas-clemente/chrome-exec-path
...
try to find the Chrome executable in different paths
2017-08-23 17:43:25 +07:00
Marten Seemann
ec619ede1d
Merge pull request #795 from lucas-clemente/fix-653
...
use a chan to store sent packets in mock connection
2017-08-23 16:53:23 +07:00
Marten Seemann
cbc6f64461
try to find the Chrome executable in different paths
2017-08-23 16:44:58 +07:00
Marten Seemann
6bdd782a4b
don't queue ACKs for non-retransmittable packets for QUIC >= 39
...
From QUIC 39 on, the peer is required to send a retransmittable packet
when it wishes to receive an ACK.
2017-08-23 16:00:48 +07:00
Marten Seemann
79bb3a9bd3
force sending of a retransmittable packet every 20 packets
2017-08-23 16:00:48 +07:00
Marten Seemann
843764aea3
write frames in big endian for QUIC 39
2017-08-23 16:00:48 +07:00
Marten Seemann
dd0daaaf1e
implement version-dependent parsing of the Public Header
2017-08-23 16:00:45 +07:00
Marten Seemann
1a8a012019
implement a function to parse the connection ID from the Public Header
...
This will be needed to correctly parse the Public Header later. With the
upcoming changes in Q039 (and later, the transition to the IETF header
format), it's necessary to know the QUIC version in order to parse the
Public Header. For packets sent after the handshake, the version field
is not present in the Public Header, so we have to look it up by the
connection ID.
2017-08-23 15:57:35 +07:00
Marten Seemann
b5ff87b082
minor refactoring of Public Header parsing
2017-08-23 15:57:35 +07:00
Marten Seemann
2d4b7726b2
pass the QUIC version to all frame parsing functions
2017-08-23 15:57:35 +07:00
Marten Seemann
604c6ae406
implement an utils.BigEndian
2017-08-23 15:57:35 +07:00