Commit Graph

1892 Commits

Author SHA1 Message Date
Lucas Clemente
fc8d937fce Move calls to GetWindowUpdate out of the send loop 2017-06-20 23:41:36 +02:00
Lucas Clemente
9d428d92f7 Merge pull request #690 from lucas-clemente/packer-refactoring
Packer refactoring
2017-06-20 23:38:38 +02:00
Lucas Clemente
1aa9b68a34 Merge pull request #693 from lucas-clemente/phuslu-master
use TLSConfig.ServerName as the client hostname if provided
2017-06-20 11:33:03 +02:00
Phus Lu
13abf7800f implement Timeout() for QuicError 2017-06-20 16:39:29 +08:00
Lucas Clemente
6157eeffdb Factor crypto frame packing into a separate function 2017-06-20 10:38:55 +02:00
Lucas Clemente
8b56b6c169 Separate non-fw retransmissions from the main code path 2017-06-20 10:25:45 +02:00
Lucas Clemente
f1c2163f14 Remove non-retransmittable logic from packer, this is now in ackhandler 2017-06-20 10:25:45 +02:00
Lucas Clemente
e50a03148d Separate the CONN_CLOSE packing path from the normal one 2017-06-20 10:25:45 +02:00
Lucas Clemente
dc3126ba90 Move packet writing and sealing to a new function 2017-06-20 10:25:45 +02:00
Lucas Clemente
cbb640b093 Don't pass the stop waiting frame to the packer as a parameter 2017-06-20 10:25:45 +02:00
Lucas Clemente
495399ede6 Remove PackPacket's control frames parameter
With this change it would theoretically be possible for outdated control frames to be sent, but this is quite unlikely in practice.
2017-06-20 10:25:45 +02:00
twdkeule
d7ddadc7b7 Added test with large RTT (#679)
* Added test with large RTT

* Make RTT test for variable filesize

* Cleanup, don't log to new file

* Run RTT test with multiple RTT's (for only 500kB file)
2017-06-20 10:20:54 +02:00
Marten Seemann
2c920dbfc8 remove obsolete check for tls.Config.ServerName when verifying the cert
The hostname is set to tls.Config.ServerName in the client already, thus
we don't have to read that value again when verifying the certificate.
2017-06-20 09:54:08 +02:00
Marten Seemann
967dc7cb46 add a test for using the tls.Config.ServerName as the hostname 2017-06-20 09:28:40 +02:00
Lucas Clemente
d6e2b3a465 Merge pull request #688 from lucas-clemente/fix-505
Fix non-retransmittable packet handling in SPH
2017-06-19 20:53:55 +02:00
Lucas Clemente
472f2b24c0 Don't call OnAlarm() if no alarm is set 2017-06-19 16:13:09 +02:00
Lucas Clemente
515f4b3dcd Don't require ACKs of non-retransmittable packets
The way this is implemented here is not particularly nice, but will improve in the future once we implement spurious RTO decection #687 (where we'll need a packetHistory similar to Chrome's). In particular, we don't consider non-retransmittable packets for RTT measurements or for early retransmit. While that might impact performance in some edge cases, it shouldn't be worse than before :)

Fixes #505.
2017-06-19 14:38:17 +02:00
Lucas Clemente
3cf7e061c5 Fix the order of dequeueing lost packets 2017-06-19 14:10:17 +02:00
Lucas Clemente
833da82726 Move retransmittable frame logic to the ackhandler package 2017-06-19 14:10:17 +02:00
Phus Lu
25f901bee3 use Config.TLSConfig.ServerName as client hostname if provided
Currently quic client always parse `hostname` from the addr. It prevent us to specific a different `hostname` to the client.

This PR is to enable this by the `TLSConfig.ServerName` field. Thanks.

Signed-off-by: Phus Lu <phuslu@hotmail.com>
2017-06-19 17:02:52 +08:00
Marten Seemann
f9659428c7 Merge pull request #681 from lucas-clemente/session-logging
add some more logging to the session
2017-06-16 21:01:13 +02:00
Marten Seemann
45310d5898 Merge pull request #682 from lucas-clemente/fix-rtt-test
increase RTT and time constraints in handshake RTT tests
2017-06-16 15:06:55 +02:00
Marten Seemann
99527cf3d4 log the local address when starting a new connection in the client 2017-06-16 15:00:48 +02:00
Marten Seemann
2a2375f787 log undecrytable packets after the handshake 2017-06-16 15:00:48 +02:00
Marten Seemann
248bec97f9 log connection ID for sent packets 2017-06-16 15:00:48 +02:00
Marten Seemann
10cbb59828 Merge pull request #684 from lucas-clemente/fix-683
fix flaky proxy tests
2017-06-16 14:55:23 +02:00
Marten Seemann
97914a096a Merge pull request #680 from lucas-clemente/waituntilclosed
add a method to the session that blocks until it is closed
2017-06-16 14:07:43 +02:00
Marten Seemann
ab1aaf9355 fix flaky proxy tests 2017-06-16 13:24:13 +02:00
Marten Seemann
55dbc3c52f increase RTT and time constraints in handshake RTT tests 2017-06-16 12:49:42 +02:00
Marten Seemann
cd02cc8f0f add a method to the session that blocks until it is closed 2017-06-16 11:13:40 +02:00
Lucas Clemente
95c3db90a8 Merge pull request #678 from lucas-clemente/inttest-versions
Start a unique quic server per integration test case
2017-06-15 14:18:59 +02:00
Lucas Clemente
960a445ebe Start a unique quic server per integration test case
This fixes a race condition that could lead to errors during version negotiation.

Fixes #676.
2017-06-15 14:05:31 +02:00
Lucas Clemente
d335458080 Merge pull request #675 from lucas-clemente/fix-672
Fix stream framer race condition causing FC issues
2017-06-14 20:01:41 +02:00
Lucas Clemente
e09590a75c Fix stream framer race condition causing FC issues
Fixes #672.
2017-06-14 19:47:47 +02:00
Lucas Clemente
a020ad2ab5 Merge pull request #673 from lucas-clemente/fix-663
Don't retransmit handshake packets once the handshake is complete
2017-06-14 17:12:40 +02:00
Lucas Clemente
23bad71d92 Don't retransmit handshake packets once the handshake is complete
Fixes #663.
2017-06-14 16:36:35 +02:00
Marten Seemann
7a49b06c6c Merge pull request #671 from lucas-clemente/flowcontrol-fixes
fix error messages for connection-level flow control violations
2017-06-14 14:21:16 +02:00
Marten Seemann
2a1b21af2f Merge pull request #670 from lucas-clemente/fix-stream-write
return the length of data written when the stream errors
2017-06-14 14:21:05 +02:00
Marten Seemann
c63be8c544 return the length of data written when the stream errors 2017-06-14 12:08:26 +02:00
Marten Seemann
63873632d0 fix error messages for connection-level flow control violations 2017-06-14 10:06:47 +02:00
Marten Seemann
e1e076e375 Merge pull request #667 from lucas-clemente/goftm-imports
run gofmt to fix ordering of imports
2017-06-14 10:05:52 +02:00
Lucas Clemente
c520b548ae Merge pull request #666 from twdkeule/fix-526
Make max flow control windows configurable
2017-06-14 09:58:39 +02:00
Lucas Clemente
bdca82f766 Remove incomplete and unnecessary sentence in docs 2017-06-14 09:58:12 +02:00
Thomas De Keulenaer
798a95aa01 Updated Changelog and comments 2017-06-14 09:38:18 +02:00
Marten Seemann
987905149b run gofmt to fix ordering of imports 2017-06-13 18:07:22 +02:00
Thomas De Keulenaer
9a6cb5eb4d Default flow lvls should be tested at client/server.go lvl 2017-06-13 16:43:46 +02:00
Thomas De Keulenaer
4fa7b9e569 Let server and client fill the flow variables 2017-06-13 16:42:06 +02:00
Thomas De Keulenaer
89f96d1e89 Make max flow control windows configurable 2017-06-13 15:52:51 +02:00
Thomas De Keulenaer
93e2f751b5 Fix typo and clarify 2017-06-13 14:00:06 +02:00
Marten Seemann
bb280f29be Merge pull request #647 from lucas-clemente/log-level-numbers
better log levels
2017-06-11 12:28:58 +02:00