Commit Graph

2491 Commits

Author SHA1 Message Date
Marten Seemann
ca2471e78d remove explicit error for duplicate or out of order ACKs 2018-03-07 09:30:05 +07:00
Marten Seemann
503e3cbb3a Merge pull request #1222 from lucas-clemente/ack-in-packet-0
accept ACKs sent in packet number 0
2018-03-07 08:02:38 +07:00
Marten Seemann
6efa73c36c accept ACKs sent in packet number 0 2018-03-06 18:12:41 +07:00
Marten Seemann
2d560645f7 Merge pull request #1213 from lucas-clemente/ack-decimation
implement ACK decimation
2018-03-06 09:58:56 +07:00
Marten Seemann
5c98332e90 implement ACK decimation
ACK generation closely follows Chrome's QuicConnection::MaybeQueueAck()
in ACK_DECIMATION_WITH_REORDERING mode.
2018-03-05 19:56:19 +07:00
Marten Seemann
8fc0f53a8d move constants used by the received packet handler to ackhandler package 2018-03-05 19:39:59 +07:00
Marten Seemann
41d7cbb014 Merge pull request #1219 from lucas-clemente/max-tracked-error-check
remove incorrect error check when sending a packet
2018-03-05 19:34:00 +07:00
Marten Seemann
c14f0fc1aa Merge pull request #1220 from lucas-clemente/new-packet-types
implement the IETF draft 10 header changes
2018-03-05 19:28:32 +07:00
Marten Seemann
98ad81772c Merge pull request #1218 from lucas-clemente/refactor-retransmission-in-session
refactor sending of retransmission in the session
2018-03-05 19:25:47 +07:00
Marten Seemann
c609bcfea7 Merge pull request #1216 from lucas-clemente/fix-handshake-retransmission-packettype
set the packet type for handshake retransmissions
2018-03-05 19:21:20 +07:00
Marten Seemann
b6ca910a52 implement the IETF draft 10 header changes 2018-03-05 19:13:37 +07:00
Marten Seemann
2d64953e0e remove incorrect error check when sending a packet
There's no need for a check if more than protocol.MaxTrackedSentPackets
packets were sent. There are certain situations where we allow (via
SendingAllowed()) sending of more packets, and we shouldn't throw an
error when the session then actually sends these packets.
2018-03-05 17:08:18 +07:00
Marten Seemann
8fc573c895 set the packet type for handshake retransmissions 2018-03-04 22:33:10 +07:00
Marten Seemann
6f03b3a44a refactor sending of retransmission in the session 2018-03-04 22:16:25 +07:00
Marten Seemann
ba00cb9175 Merge pull request #1215 from lucas-clemente/golint
make golint happier
2018-03-02 22:47:05 +07:00
Marten Seemann
fab3023876 Merge pull request #1214 from lucas-clemente/fix-232
remove TODO in Public Header regarding the div nonce bit for clients
2018-03-02 22:46:04 +07:00
Marten Seemann
54db9ebec4 Merge pull request #1212 from lucas-clemente/refactor-retransmissions
refactor retransmissions
2018-03-02 17:53:56 +07:00
Marten Seemann
a588b9e140 make golint happier 2018-03-02 16:58:19 +07:00
Marten Seemann
d9e670b03a remove TODO in Public Header regarding the div nonce bit for clients
The Public Header will not change before the switch to IETF QUIC.
We will have to accept the wrong bit in the client Public Header.
2018-03-02 16:44:23 +07:00
Marten Seemann
656dff6163 introduce a UsesStopWaitingFrames() method for version numbers 2018-03-02 16:00:11 +07:00
Marten Seemann
be2be3872f Merge pull request #1194 from lucas-clemente/log-transport-params
log the TLS Transport Parameters
2018-02-27 01:03:19 +08:00
Marten Seemann
a1c9e706b0 omit the data length in the last STREAM frame of a retransmission 2018-02-26 22:22:21 +08:00
Marten Seemann
ca7291e8cf send retransmission as separate packets 2018-02-26 22:22:17 +08:00
Marten Seemann
33c2ff59e5 Merge pull request #1209 from lucas-clemente/fix-1017
reject unknown versions in the quic.Config
2018-02-26 22:14:26 +08:00
Marten Seemann
a1be1c225b Merge pull request #1172 from lorenzosaino/client-timeout
Make h2quic RoundTripper.RoundTrip(...) return if client timeout expires
2018-02-26 14:54:44 +08:00
Marten Seemann
d58b7bb4fd reenable the version negotiation integration tests 2018-02-26 14:43:23 +08:00
Marten Seemann
624ac61412 reject unknown versions in the quic.Config 2018-02-26 11:07:06 +08:00
Marten Seemann
cd01b55090 Merge pull request #1207 from lucas-clemente/fix-1206
don't send greased version numbers for gQUIC
2018-02-26 08:46:07 +08:00
Lorenzo Saino
10acc677aa Make RoundTripper.RoundTrip(...) return if client timeout expires
Currently, the implementation of h2quic.RoundTripper.RoundTrip(req
*http.Request) ignores the context of req. As a result, if the
RoundTripper is used as transport of an http.Client with a timeout value
set, that is ignored.

For example, in the following snippet, client.Do(req) does not promptly
return if the task takes more than client.Timeout to complete.

    client := http.Client{
        Timeout: 50 * time.Millisecond,
        Transport = &h2quic.RoundTripper{}
    }
    req, err := http.NewRequest("GET", "https://www.example.com", nil)
    response, err := client.Do(req)

This commit updates h2quic.client.RoundTrip(req *http.Request) to return
an error if the request is cancelled.
2018-02-25 20:58:37 +00:00
Marten Seemann
2ab2baf4bc don't send greased version numbers for gQUIC 2018-02-25 23:19:52 +08:00
Marten Seemann
e26c1f09de Merge pull request #1205 from lucas-clemente/update-mint
update mint
2018-02-25 19:41:39 +08:00
Marten Seemann
fd7007db50 Merge pull request #1203 from lucas-clemente/remove-duplicate-proxy-log
remove duplicate log statement in the proxy
2018-02-25 19:41:17 +08:00
Marten Seemann
d1ccef51a7 update mint 2018-02-25 11:58:35 +08:00
Marten Seemann
03171bc725 remove duplicate log statement in the proxy 2018-02-24 10:19:53 +08:00
Marten Seemann
6ca44459e5 Merge pull request #1158 from lucas-clemente/uni-stream-integration-test
add integration tests using many unidirectional streams
2018-02-24 09:31:39 +08:00
Marten Seemann
f3323c21f9 add integration tests using many unidirectional streams 2018-02-24 09:17:10 +08:00
Marten Seemann
189c1060bd Merge pull request #1202 from lucas-clemente/gofmt
run gofmt -s
2018-02-24 00:57:40 +08:00
Marten Seemann
86e57706df run gofmt -s 2018-02-23 23:38:08 +08:00
Marten Seemann
78da50ee7c log the TLS Transport Parameters 2018-02-23 23:12:30 +08:00
Marten Seemann
598d023802 Merge pull request #1199 from lucas-clemente/gometalinter
use gometalinter to run code quality checks
2018-02-23 23:06:01 +08:00
Marten Seemann
81974d30d6 run gosimple in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
286a51bcc0 run staticcheck in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
b6470311ea run unused in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
c3ec497a2e run unconvert in gometalinter 2018-02-23 22:42:22 +08:00
Marten Seemann
a9797d9341 run structcheck in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
6555907162 run goimports in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
11af98e338 run misspell in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
b6c41464c6 run varcheck in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
cda87e5db2 run deadcode in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
37aa577560 run ineffassign in gometalinter 2018-02-23 22:39:08 +08:00