From 1bf489b7afc54712fd66e6a981833682be6e2ffb Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Tue, 21 May 2019 15:28:38 +0100 Subject: [PATCH] open a control stream and send a SETTINGS frame as an H3 server --- http3/server.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/http3/server.go b/http3/server.go index 558d9d9a..917b0bae 100644 --- a/http3/server.go +++ b/http3/server.go @@ -1,6 +1,7 @@ package http3 import ( + "bytes" "crypto/tls" "errors" "fmt" @@ -125,6 +126,16 @@ func (s *Server) handleConn(sess quic.Session) { // TODO: accept control streams decoder := qpack.NewDecoder(nil) + // send a SETTINGS frame + str, err := sess.OpenUniStreamSync() + if err != nil { + s.logger.Debugf("Opening the control stream failed.") + return + } + buf := bytes.NewBuffer([]byte{0}) + (&settingsFrame{}).Write(buf) + str.Write(buf.Bytes()) + for { str, err := sess.AcceptStream() if err != nil {