mirror of
https://github.com/valyala/fasthttp.git
synced 2026-06-13 15:46:49 +03:00
fix: deep-copy trailer keys
This commit is contained in:
@@ -3515,7 +3515,7 @@ func copyTrailer(dst, src [][]byte) [][]byte {
|
||||
if cap(dst) >= len(src) {
|
||||
dst = dst[:len(src)]
|
||||
} else {
|
||||
dst = append(dst[:0], src...)
|
||||
dst = make([][]byte, len(src))
|
||||
}
|
||||
|
||||
for i := range dst {
|
||||
|
||||
@@ -3724,6 +3724,27 @@ func TestRequestHeader_Keys(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestResponseHeaderCopyToCopiesTrailerKeys(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
var src ResponseHeader
|
||||
var dst ResponseHeader
|
||||
|
||||
if err := src.SetTrailer("X-Foo"); err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
src.CopyTo(&dst)
|
||||
if err := src.SetTrailer("Y-Bar"); err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
got := dst.PeekTrailerKeys()
|
||||
want := [][]byte{[]byte("X-Foo")}
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Fatalf("unexpected copied trailer keys %q. Expecting %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResponseHeader_Keys(t *testing.T) {
|
||||
h := &ResponseHeader{}
|
||||
h.Add(HeaderConnection, "keep-alive")
|
||||
|
||||
Reference in New Issue
Block a user