Commit Graph

1713 Commits

Author SHA1 Message Date
Lucas Clemente
65dc8f139f Update certs 2017-07-03 21:58:47 +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
Marten Seemann
f333a9b3e7 fix stream id checks in streamsMap
There were several bugs here:
- We must always return an error when the peer tries to open a stream
from the wrong side.
- We must never return an error when GetOrOpenStream is called for a
stream that was already closed. GetOrOpenStream is called when a frame
on a stream is received, so this happens when we receive retransmissions
of STREAM frames for a closed stream. We only used to do that check for
peer-initiated streams, not for streams we opened ourselves.
2017-06-22 22:09:21 +02:00
Lucas Clemente
1106fbf5a1 Merge pull request #701 from lucas-clemente/lucas-clemente-patch-1
Update appveyor to use Go 1.8.3
2017-06-21 18:55:59 +02:00
Lucas Clemente
a6af663a07 Update appveyor to use Go 1.8.3 2017-06-21 18:40:12 +02:00
Lucas Clemente
a3fdd530c1 Merge pull request #692 from phuslu/nerrors
Implement Timeout()/Temproary() for QuicError
2017-06-21 18:26:50 +02:00
Lucas Clemente
a050f3f644 Merge pull request #699 from lucas-clemente/rph-alarm
Simplify RPH ack alarm to be in line with the SPH alarm
2017-06-21 17:34:08 +02:00
Lucas Clemente
627b762421 Simplify RPH ack alarm to be in line with the SPH alarm 2017-06-21 13:58:41 +02:00
Lucas Clemente
d3baf5282a Removed unused timer in RPH (?!) 2017-06-21 13:47:57 +02:00
Lucas Clemente
cf63d2ec7a Merge pull request #695 from lucas-clemente/send-refactor
Session.Send refactor
2017-06-21 11:31:46 +02:00
Lucas Clemente
a0aba76df9 QueueControlFrameForNextPacket -> QueueControlFrame 2017-06-21 11:16:28 +02:00
Lucas Clemente
3300b6cef0 Store ackframe along with swf in the packet packer 2017-06-21 11:16:28 +02:00
Lucas Clemente
efc9ec5051 Add packer.SetLeastUnacked and remove the parameter from the Pack* functions 2017-06-21 11:16:28 +02:00
Lucas Clemente
4064c75d97 Minor cleanups of session.Send, no functional change 2017-06-21 11:16:28 +02:00
Lucas Clemente
1057c3af14 Merge pull request #694 from lucas-clemente/fix-576
Send ACKs and SWFs even if we are congestion limited
2017-06-21 11:16:04 +02:00
Lucas Clemente
2b69cc2e3d Add a session test for sending ACK-only packets 2017-06-21 11:09:42 +02:00
Lucas Clemente
ff8c75a22e Send ACKs and SWFs even if we are congestion limited
Fixes #576.
2017-06-20 23:41:36 +02:00
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