Commit Graph

209 Commits

Author SHA1 Message Date
Marten Seemann
ae385e776c remove an old Go 1.8 test case 2018-12-28 19:25:43 +07:00
Marten Seemann
3ffea5d8c4 internalize the qerr package 2018-11-11 12:44:16 +07:00
Marten Seemann
3266e36811 drop support for gQUIC 2018-10-30 10:20:39 +07:00
Marten Seemann
82508f1562 use tls-tris instead of mint 2018-10-26 16:18:49 +07:00
Marten Seemann
9252e12da5 fix incorrect type assertion in h2quic server 2018-09-10 11:01:16 +08:00
Marten Seemann
e23c08eef9 update CIs to Go 1.11 2018-08-16 11:51:23 +07:00
Marten Seemann
6d3d6dc47d pass an error code to Session.CloseWithError 2018-07-06 15:51:38 +07:00
Marten Seemann
8b2992a243 split the Session.Close(error) in Close() and CloseWithError(error) 2018-07-06 15:51:35 +07:00
Marten Seemann
d0897fa0b3 ignore HTTP2 PRIORITY frames in the server 2018-06-05 12:30:30 +02:00
Marten Seemann
cdee407331 Merge pull request #1360 from nogoegst/request-host-fix
Use http.Request.Host only for authority header and not for dialing
2018-06-01 18:28:11 +08:00
Marten Seemann
6b82e46e0c use the prefix logger for client, server and proxy 2018-05-29 20:52:54 +08:00
Ivan Markin
350a663115 Use http.Request.Host only for authority header and not for dialing
Signed-off-by: Ivan Markin <sw@nogoegst.net>
2018-05-15 20:51:57 +00:00
Marten Seemann
5a0a231c02 use H2 helper functions from httpguts repository
httplex was merged into httpguts:
cbb82b59bc
2018-05-08 14:00:31 +09:00
Marten Seemann
948eef3e42 create a logger interface and use it everywhere 2018-04-04 13:03:28 +07:00
Marten Seemann
6712a8d023 don't log the PeerGoingAway error in the h2quic client 2018-03-11 15:42:20 +07:00
Marten Seemann
a588b9e140 make golint happier 2018-03-02 16:58:19 +07: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
286a51bcc0 run staticcheck in gometalinter 2018-02-23 22:42:32 +08:00
Marten Seemann
11af98e338 run misspell in gometalinter 2018-02-23 22:39:08 +08:00
Marten Seemann
da49295b52 expose methods for opening and accepting unidirectional streams 2018-02-21 22:19:37 +08:00
Marten Seemann
7c9b18ea67 make the h2quic client test less racy 2018-02-01 22:35:53 +08:00
Marten Seemann
ef56cae9dc implement a Dial function for the h2quic.RoundTripper
If Dial is set, it will be used for dialing new QUIC connections. If it
is nil, quic.DialAddr will be used.
2018-01-21 13:47:06 +11:00
Marten Seemann
66fd3b5195 expose the ConnectionState in the Session
The ConnectionState contains basic details about the QUIC connection.
2018-01-11 16:27:42 +07:00
Marten Seemann
19c12a9470 refactor the loop reading the header stream in the h2quic client 2018-01-04 08:35:25 +07:00
Marten Seemann
fc4adb4775 improve error handling in the h2quic client for header stream handling
When the underlying QUIC stream is closed, the close error should be
returned. This always happens when receiving a CONNECTION_CLOSE from the
server.
Furthermore, this adds a missing break statement in the case when
receiving an invalid HTTP request.
2018-01-03 09:07:18 +07:00
Marten Seemann
a1058c0d97 make h2quic.Server.ListenAndServe error if it was closed before 2017-12-20 17:26:32 +07:00
Marten Seemann
d0b22e3439 refactor stream to support canceling Read and Write 2017-12-16 09:10:24 +07:00
Julien Schmidt
feab6e8450 shorten blocking call of Server.handleRequest 2017-12-08 09:41:57 +01:00
Marten Seemann
ff17ef79fe Merge pull request #987 from julienschmidt/handleHeaderStream
remove superfluous goroutine
2017-12-06 17:21:12 +07:00
Julien Schmidt
06c87af606 remove unused encryptionLevel from client 2017-12-06 10:51:28 +01:00
Julien Schmidt
54b62fb4a5 remove superfluous goroutine 2017-12-06 10:44:37 +01:00
Marten Seemann
f662822486 use stream 0 for the crypto stream when using TLS 2017-11-04 15:22:07 +07:00
Marten Seemann
d98a11bb35 save version numbers such that can be written in big endian
This makes the version number representation consistent with the IETF
draft.
2017-10-27 17:24:24 +07:00
Marten Seemann
9cb7480050 rename connection ID truncation to connection ID omission 2017-09-29 22:52:54 +07:00
Lucas Clemente
ea4de9a08f Merge pull request #698 from twdkeule/implement-closeNotifier
implement the context for the server http.Request
2017-09-26 14:09:54 +02:00
Julien Benoist
ce9132e324 fix TLS initialization for the TCP h2quic Server 2017-09-22 20:25:52 +07:00
Marten Seemann
f1ada87dcf make the protocol package internal 2017-08-30 00:19:44 +07:00
Thomas De Keulenaer
4f6eef8b08 Add test for request context 2017-08-27 20:05:13 +02:00
Thomas De Keulenaer
51be240488 Use datastream context for requests 2017-08-27 20:05:13 +02:00
Thomas De Keulenaer
55a8979bd5 Added session context to http.Request 2017-08-27 20:05:13 +02:00
Lucas Clemente
75070d057b Fix import order 2017-08-21 12:25:27 +02:00
Lucas Clemente
8ec11c0b53 Move testdata/ to internal/ 2017-08-18 12:06:36 +02:00
Marten Seemann
f6e8ce5c67 make tests independent of the supported QUIC versions
Now it's no longer necessary to edit the h2quic tests when adding a new
QUIC version to the slice of supported versions.
2017-08-10 20:23:20 +07:00
Marten Seemann
8ef69143ba implement a context for the stream
The context is cancelled when the write-side of the stream is closed.
2017-08-02 11:28:17 +07:00
Marten Seemann
e02f5d5fbe replace Session.WaitUntilClosed() by a context 2017-08-02 11:27:44 +07:00
Marten Seemann
43279c37a8 Merge pull request #753 from lucas-clemente/fix-734
implement a h2quic.RoundTripOpt that allow to only use cached QUIC conns
2017-07-25 08:36:51 +07:00
Marten Seemann
6bd6594003 implement a h2quic.RoundTripOpt that allow to only use cached QUIC conns 2017-07-24 21:46:18 +07:00
Marten Seemann
36ee4bd36b Revert "use a finalizer to close the h2quic.RoundTripper"
This reverts commit 65cea185bd.

The finalizer may run even before the h2quic.RoundTripper
variable falls out of scope. This can result in closing
the session before a HTTP transfer has completed.
2017-07-24 21:43:52 +07:00
Justin
0c3a466805 Remove Alternate-Protocol header 2017-07-17 22:20:40 -04:00
Justin
33bb42488a Remove Alternate-Protocol header 2017-07-17 22:20:34 -04:00