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 {