forked from quic-go/quic-go
@@ -124,7 +124,10 @@ func (s *Server) handleRequest(session streamCreator, headerStream utils.Stream,
|
||||
if err != nil {
|
||||
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() {
|
||||
return errors.New("http2 header continuation not implemented")
|
||||
}
|
||||
|
||||
@@ -127,6 +127,17 @@ var _ = Describe("H2 server", func() {
|
||||
Eventually(func() bool { return handlerCalled }).Should(BeTrue())
|
||||
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() {
|
||||
|
||||
Reference in New Issue
Block a user