http3: send SETTINGS_MAX_FIELD_SECTION_SIZE in the SETTINGS frame (#5431)

* http3/qlog: implement qlogging of SETTINGS_MAX_FIELD_SECTION_SIZE

* http3: send SETTINGS_MAX_FIELD_SECTION_SIZE in the SETTINGS frame
This commit is contained in:
Marten Seemann
2025-11-16 21:45:27 +08:00
committed by GitHub
parent e46470d68f
commit be2a6229c4
8 changed files with 141 additions and 29 deletions

View File

@@ -97,9 +97,10 @@ func (f *GoAwayFrame) encode(enc *jsontext.Encoder) error {
}
type SettingsFrame struct {
Datagram *bool
ExtendedConnect *bool
Other map[uint64]uint64
MaxFieldSectionSize int64
Datagram *bool
ExtendedConnect *bool
Other map[uint64]uint64
}
func (f *SettingsFrame) encode(enc *jsontext.Encoder) error {
@@ -109,6 +110,14 @@ func (f *SettingsFrame) encode(enc *jsontext.Encoder) error {
h.WriteToken(jsontext.String("settings"))
h.WriteToken(jsontext.String("settings"))
h.WriteToken(jsontext.BeginArray)
if f.MaxFieldSectionSize >= 0 {
h.WriteToken(jsontext.BeginObject)
h.WriteToken(jsontext.String("name"))
h.WriteToken(jsontext.String("settings_max_field_section_size"))
h.WriteToken(jsontext.String("value"))
h.WriteToken(jsontext.Uint(uint64(f.MaxFieldSectionSize)))
h.WriteToken(jsontext.EndObject)
}
if f.Datagram != nil {
h.WriteToken(jsontext.BeginObject)
h.WriteToken(jsontext.String("name"))