forked from quic-go/quic-go
@@ -124,7 +124,10 @@ func (s *Server) handleRequest(session streamCreator, headerStream utils.Stream,
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
h2headersFrame := h2frame.(*http2.HeadersFrame)
|
h2headersFrame, ok := h2frame.(*http2.HeadersFrame)
|
||||||
|
if !ok {
|
||||||
|
return qerr.Error(qerr.InvalidHeadersStreamData, "expected a header frame")
|
||||||
|
}
|
||||||
if !h2headersFrame.HeadersEnded() {
|
if !h2headersFrame.HeadersEnded() {
|
||||||
return errors.New("http2 header continuation not implemented")
|
return errors.New("http2 header continuation not implemented")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,6 +127,17 @@ var _ = Describe("H2 server", func() {
|
|||||||
Eventually(func() bool { return handlerCalled }).Should(BeTrue())
|
Eventually(func() bool { return handlerCalled }).Should(BeTrue())
|
||||||
Expect(dataStream.remoteClosed).To(BeFalse())
|
Expect(dataStream.remoteClosed).To(BeFalse())
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
It("errors when non-header frames are received", func() {
|
||||||
|
headerStream.Write([]byte{
|
||||||
|
0x0, 0x0, 0x06, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
|
||||||
|
'f', 'o', 'o', 'b', 'a', 'r',
|
||||||
|
})
|
||||||
|
err := s.handleRequest(session, headerStream, &sync.Mutex{}, hpackDecoder, h2framer)
|
||||||
|
println(err.Error())
|
||||||
|
Expect(err).To(MatchError("InvalidHeadersStreamData: expected a header frame"))
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
It("handles the header stream", func() {
|
It("handles the header stream", func() {
|
||||||
|
|||||||
Reference in New Issue
Block a user