From 51cff2c8bcd8b8ab677caa8c93b20a63ea6e28a6 Mon Sep 17 00:00:00 2001 From: luke Date: Tue, 19 Dec 2023 17:15:44 +0800 Subject: [PATCH] feat: avoid writing multiple settings --- matchers.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/matchers.go b/matchers.go index 625124b..541aece 100644 --- a/matchers.go +++ b/matchers.go @@ -266,10 +266,12 @@ func matchHTTP2Field(w io.Writer, r io.Reader, name string, matches func(string) waitAcks-- break } - if err := framer.WriteSettings(); err != nil { - return false + if waitAcks <= 0 { + if err := framer.WriteSettings(); err != nil { + return false + } + waitAcks++ } - waitAcks++ case *http2.ContinuationFrame: if _, err := hdec.Write(f.HeaderBlockFragment()); err != nil { return false @@ -282,7 +284,7 @@ func matchHTTP2Field(w io.Writer, r io.Reader, name string, matches func(string) done = done || f.FrameHeader.Flags&http2.FlagHeadersEndHeaders != 0 } - if done && waitAcks == 0 { + if done && waitAcks <= 0 { return matched } }