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) {
|
if cap(dst) >= len(src) {
|
||||||
dst = dst[:len(src)]
|
dst = dst[:len(src)]
|
||||||
} else {
|
} else {
|
||||||
dst = append(dst[:0], src...)
|
dst = make([][]byte, len(src))
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := range dst {
|
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) {
|
func TestResponseHeader_Keys(t *testing.T) {
|
||||||
h := &ResponseHeader{}
|
h := &ResponseHeader{}
|
||||||
h.Add(HeaderConnection, "keep-alive")
|
h.Add(HeaderConnection, "keep-alive")
|
||||||
|
|||||||
Reference in New Issue
Block a user