fix application bug
This commit is contained in:
15
vendor/github.com/lucas-clemente/quic-go/h2quic/client.go
generated
vendored
15
vendor/github.com/lucas-clemente/quic-go/h2quic/client.go
generated
vendored
@@ -16,8 +16,8 @@ import (
|
||||
|
||||
quic "github.com/lucas-clemente/quic-go"
|
||||
"github.com/lucas-clemente/quic-go/internal/protocol"
|
||||
"github.com/lucas-clemente/quic-go/internal/qerr"
|
||||
"github.com/lucas-clemente/quic-go/internal/utils"
|
||||
"github.com/lucas-clemente/quic-go/qerr"
|
||||
)
|
||||
|
||||
type roundTripperOpts struct {
|
||||
@@ -52,10 +52,7 @@ type client struct {
|
||||
|
||||
var _ http.RoundTripper = &client{}
|
||||
|
||||
var defaultQuicConfig = &quic.Config{
|
||||
RequestConnectionIDOmission: true,
|
||||
KeepAlive: true,
|
||||
}
|
||||
var defaultQuicConfig = &quic.Config{KeepAlive: true}
|
||||
|
||||
// newClient creates a new client
|
||||
func newClient(
|
||||
@@ -94,7 +91,7 @@ func (c *client) dial() error {
|
||||
}
|
||||
|
||||
// once the version has been negotiated, open the header stream
|
||||
c.headerStream, err = c.session.OpenStream()
|
||||
c.headerStream, err = c.session.OpenStreamSync()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -111,10 +108,10 @@ func (c *client) handleHeaderStream() {
|
||||
for err == nil {
|
||||
err = c.readResponse(h2framer, decoder)
|
||||
}
|
||||
if quicErr, ok := err.(*qerr.QuicError); !ok || quicErr.ErrorCode != qerr.PeerGoingAway {
|
||||
if quicErr, ok := err.(*qerr.QuicError); !ok || quicErr.ErrorCode != qerr.NoError {
|
||||
c.logger.Debugf("Error handling header stream: %s", err)
|
||||
}
|
||||
c.headerErr = qerr.Error(qerr.InvalidHeadersStreamData, err.Error())
|
||||
c.headerErr = qerr.Error(qerr.InternalError, err.Error())
|
||||
// stop all running request
|
||||
close(c.headerErrored)
|
||||
}
|
||||
@@ -244,7 +241,7 @@ func (c *client) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||
if streamEnded || isHead {
|
||||
res.Body = noBody
|
||||
} else {
|
||||
res.Body = dataStream
|
||||
res.Body = &responseBody{dataStream}
|
||||
if requestedGzip && res.Header.Get("Content-Encoding") == "gzip" {
|
||||
res.Header.Del("Content-Encoding")
|
||||
res.Header.Del("Content-Length")
|
||||
|
||||
18
vendor/github.com/lucas-clemente/quic-go/h2quic/response_body.go
generated
vendored
Normal file
18
vendor/github.com/lucas-clemente/quic-go/h2quic/response_body.go
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
package h2quic
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
quic "github.com/lucas-clemente/quic-go"
|
||||
)
|
||||
|
||||
type responseBody struct {
|
||||
quic.Stream
|
||||
}
|
||||
|
||||
var _ io.ReadCloser = &responseBody{}
|
||||
|
||||
func (rb *responseBody) Close() error {
|
||||
rb.Stream.CancelRead(0)
|
||||
return nil
|
||||
}
|
||||
8
vendor/github.com/lucas-clemente/quic-go/h2quic/server.go
generated
vendored
8
vendor/github.com/lucas-clemente/quic-go/h2quic/server.go
generated
vendored
@@ -14,8 +14,8 @@ import (
|
||||
|
||||
quic "github.com/lucas-clemente/quic-go"
|
||||
"github.com/lucas-clemente/quic-go/internal/protocol"
|
||||
"github.com/lucas-clemente/quic-go/internal/qerr"
|
||||
"github.com/lucas-clemente/quic-go/internal/utils"
|
||||
"github.com/lucas-clemente/quic-go/qerr"
|
||||
"golang.org/x/net/http2"
|
||||
"golang.org/x/net/http2/hpack"
|
||||
)
|
||||
@@ -127,7 +127,7 @@ func (s *Server) serveImpl(tlsConfig *tls.Config, conn net.PacketConn) error {
|
||||
func (s *Server) handleHeaderStream(session streamCreator) {
|
||||
stream, err := session.AcceptStream()
|
||||
if err != nil {
|
||||
session.CloseWithError(quic.ErrorCode(qerr.InvalidHeadersStreamData), err)
|
||||
session.CloseWithError(quic.ErrorCode(qerr.InternalError), err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ func (s *Server) handleHeaderStream(session streamCreator) {
|
||||
func (s *Server) handleRequest(session streamCreator, headerStream quic.Stream, headerStreamMutex *sync.Mutex, hpackDecoder *hpack.Decoder, h2framer *http2.Framer) error {
|
||||
h2frame, err := h2framer.ReadFrame()
|
||||
if err != nil {
|
||||
return qerr.Error(qerr.HeadersStreamDataDecompressFailure, "cannot read frame")
|
||||
return qerr.Error(qerr.InternalError, "cannot read frame")
|
||||
}
|
||||
var h2headersFrame *http2.HeadersFrame
|
||||
switch f := h2frame.(type) {
|
||||
@@ -165,7 +165,7 @@ func (s *Server) handleRequest(session streamCreator, headerStream quic.Stream,
|
||||
case *http2.HeadersFrame:
|
||||
h2headersFrame = f
|
||||
default:
|
||||
return qerr.Error(qerr.InvalidHeadersStreamData, "expected a header frame")
|
||||
return qerr.Error(qerr.ProtocolViolation, "expected a header frame")
|
||||
}
|
||||
|
||||
if !h2headersFrame.HeadersEnded() {
|
||||
|
||||
Reference in New Issue
Block a user