Commit Graph

112 Commits

Author SHA1 Message Date
Marten Seemann
cd465ae0b5 move utils.Stream to quic.Stream 2017-02-22 23:03:09 +07:00
Marten Seemann
592ef45fdf add OpenStreamSync() method to Session interface 2017-02-22 23:03:09 +07:00
Marten Seemann
824f122a79 remove unused StreamCallback 2017-02-22 23:03:08 +07:00
Marten Seemann
5029ab0934 implement a quic.Listener, privatize the Server 2017-02-22 23:03:07 +07:00
Marten Seemann
532d3caed1 remove GetOrOpenStream from Session interface 2017-02-22 23:03:07 +07:00
Marten Seemann
a96211f724 create Session interface 2017-02-22 23:03:07 +07:00
Marten Seemann
5b42675da2 use a net.PacketConn instead of a net.UDPConn in Server and Session 2017-02-22 23:03:07 +07:00
Marten Seemann
f47142eaac remove stream ID from OpenStream() method 2017-02-22 23:03:05 +07:00
Marten Seemann
8cd1e4484c fix flaky h2quic client tests
fixes #435
2017-02-22 22:55:51 +07:00
Marten Seemann
08191fc5d9 check if the data stream is already closed after parsing an HTTP request
fixes #414
2017-02-10 18:35:44 +07:00
Marten Seemann
268841f0cc add a TLSClientConfig to the QUIC RoundTripper
fixes #407
2017-02-04 10:28:00 +07:00
Marten Seemann
b455f3ee6a fix flaky h2quic server test 2017-02-02 15:34:46 +07:00
Marten Seemann
7e0cb8072b don’t panic if a request handler replaces the request.Body
fixes #405
2017-01-28 23:00:34 +09:00
Marten Seemann
dfa0137bd6 close the connection when encountering an error on the header stream
fixes #403
2017-01-26 14:12:50 +09:00
Marten Seemann
7284a74332 fix another flaky h2quic client test 2017-01-16 16:23:34 +07:00
Marten Seemann
f08e00630d fix flaky h2quic client test 2017-01-16 12:22:03 +07:00
Marten Seemann
e3b34f2120 implement sending of the request body 2017-01-14 19:00:22 +07:00
Marten Seemann
6dd297379b set EndStream header in HeadersFrame 2017-01-14 18:58:47 +07:00
Marten Seemann
1854279bb5 reject requests with an invalid request method 2017-01-14 18:58:46 +07:00
Marten Seemann
feec325083 validate HTTP headers and request scheme in RoundTripper 2017-01-14 18:58:46 +07:00
Marten Seemann
1061bd4492 reject requests with missing URL or Header in the RoundTripper 2017-01-14 18:58:46 +07:00
Marten Seemann
128bad04e5 add option to disable compresson to QuicRoundTripper 2017-01-14 18:58:45 +07:00
Marten Seemann
d028624f77 implement compressed requests and responses 2017-01-14 18:58:45 +07:00
Marten Seemann
edb34b1765 close the quic client on protocol errors in h2quic client 2017-01-14 18:58:45 +07:00
Marten Seemann
44271a8ec8 fix mutexes for writing requests in h2quic client 2017-01-14 18:58:45 +07:00
Marten Seemann
40a6577dc3 implement a basic QUIC RoundTripper 2017-01-14 18:58:44 +07:00
Marten Seemann
c547ced3ce correctly read the hostname from a http.Request 2017-01-14 18:58:44 +07:00
Marten Seemann
14135798c0 compose a http.Response in h2quic client 2017-01-14 18:58:44 +07:00
Marten Seemann
0401b12f8a handle the header stream in the h2quic client 2017-01-14 18:58:43 +07:00
Marten Seemann
08c267431b implement closing the quic client with an error 2017-01-14 18:58:43 +07:00
Marten Seemann
c42262c2b3 implement a h2quic client that can send H2 requests 2017-01-14 18:58:43 +07:00
Marten Seemann
a8bbe66d5c use a better mockStream in h2quic tests 2017-01-14 18:58:40 +07:00
Marten Seemann
4130c3de32 send priority in H2 request headers
is required by Google’s QUIC implementation
2017-01-14 18:54:18 +07:00
Marten Seemann
099e01f410 implement a basic request writer 2017-01-14 18:54:18 +07:00
Marten Seemann
cc153463b5 fix flaky h2quic server test
fixes #396
2017-01-14 18:38:04 +07:00
Marten Seemann
64bc80339e reset streams that the request body is not read from
fixes #384
2017-01-09 23:47:01 +07:00
Marten Seemann
a86f31d789 implement a stream.Reset() method
ref #380
2017-01-09 09:49:44 +07:00
Marten Seemann
53d2290a59 only allow writing a response body for status codes that allow bodies
fixes #386
2017-01-07 09:49:22 +07:00
Marten Seemann
0fc42896e0 remove stray println in test 2016-12-22 14:37:55 +07:00
Lucas Clemente
facaab7ff7 properly handle non-header h2 frames on stream 3
fixes #370
2016-12-14 11:54:26 +01:00
Carlos Martín Nieto
327856e31c Don't rely on GOPATH to load the certificates or error codes
GOPATH is a list of paths, similar to PATH. If someone does have a list
set, the tests will try to use the full list as a path prefix to load
the certificates, which won't work.

But even handling GOPATH as a list does not solve the issue of what
certificate or error_codes.go file to load, since the code might not be
under the first one it finds.

Instead, use the runtime functionality to get the filename of the path
of the project at compilation time and perform the lookups relative to
that, which guarantees that we're loading the files from the path of the
code that is running.
2016-12-02 13:52:12 +01:00
Marten Seemann
9fba032637 set empty tls.ConnectionState in HTTP request
fixes #342
2016-11-02 16:48:17 +07:00
Marten Seemann
76cf0a2345 concatenate Cookie HPACK headers for the HTTP request
fixes #338
2016-11-01 19:54:14 +02:00
Marten Seemann
bb24be8281 set http.Request.ContentLength from HPACK headers
fixes #337
2016-10-29 16:12:35 +07:00
Lucas Clemente
ef977ee059 make h2quic.responseWriter implement http.Flusher as NOP
fixes #330
2016-10-14 11:35:10 +02:00
Lucas Clemente
a6652deb2b add a h2quic.ListenAndServe method that listens on TCP in parallel
fixes #327
2016-10-09 10:23:59 +02:00
Lucas Clemente
5c43a55f5d fix a bug in h2server where tls config could be ignored 2016-10-09 10:14:38 +02:00
chestnutprog
02b50e2ffb fix writing of multiple headers with the same name 2016-10-05 11:52:06 +02:00
Lucas Clemente
5ffc2f539d add support for version 36
fixes #312
2016-09-04 23:33:31 +02:00
Lucas Clemente
e856c08645 write http headers in lower case
fixes #317
2016-09-04 11:38:10 +02:00