http3: initialize trailer map with empty trailer entries when parsing the header (#4656)

* feat: pre-populate trailers on response with empty values

* fix: improve comment/func name
This commit is contained in:
Kevin McDonald
2024-09-07 08:59:07 +02:00
committed by GitHub
parent 4f48b2ce25
commit b92bf0c80d
5 changed files with 61 additions and 10 deletions

View File

@@ -307,10 +307,10 @@ func (w *responseWriter) writeTrailers() error {
var b bytes.Buffer
enc := qpack.NewEncoder(&b)
for trailer := range w.trailers {
trailerName := strings.ToLower(strings.TrimPrefix(trailer, http.TrailerPrefix))
if vals, ok := w.header[trailer]; ok {
name := strings.TrimPrefix(trailer, http.TrailerPrefix)
for _, val := range vals {
if err := enc.WriteField(qpack.HeaderField{Name: strings.ToLower(name), Value: val}); err != nil {
if err := enc.WriteField(qpack.HeaderField{Name: trailerName, Value: val}); err != nil {
return err
}
}