From 50a1f802f90ce21b9222154e2721b7c567d8dcff Mon Sep 17 00:00:00 2001 From: Lucas Clemente Date: Fri, 15 Apr 2016 12:01:26 +0200 Subject: [PATCH] add basic http2 header reading --- session.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/session.go b/session.go index 7dc7e1fcc..fb5c4918a 100644 --- a/session.go +++ b/session.go @@ -6,6 +6,9 @@ import ( "fmt" "net" + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" + "github.com/lucas-clemente/quic-go/crypto" "github.com/lucas-clemente/quic-go/handshake" "github.com/lucas-clemente/quic-go/protocol" @@ -83,7 +86,15 @@ func (s *Session) HandlePacket(addr *net.UDPAddr, publicHeaderBinary []byte, pub if frame.StreamID == 1 { s.HandleCryptoHandshake(frame) } else { - fmt.Printf("%#v\n", frame) + h2r := bytes.NewReader(frame.Data) + h2framer := http2.NewFramer(nil, h2r) + h2framer.ReadMetaHeaders = hpack.NewDecoder(1024, nil) + h2frame, err := h2framer.ReadFrame() + if err != nil { + return err + } + h2headersFrame := h2frame.(*http2.MetaHeadersFrame) + fmt.Printf("%#v\n", h2headersFrame) panic("streamid not 1") } } else if typeByte&0xC0 == 0x40 { // ACK