aboutsummaryrefslogtreecommitdiff
path: root/header.go
diff options
context:
space:
mode:
authorGravatar kinggo <lilong.21@bytedance.com> 2022-10-22 18:04:46 +0800
committerGravatar GitHub <noreply@github.com> 2022-10-22 12:04:46 +0200
commit128e9b35c48610a2c23c5ed56a8a2c413fd43609 (patch)
treed588da5c85585ec495579f2069317c41f59bec38 /header.go
parentfeat: add header.PeekAll (#1394) (diff)
downloadfasthttp-128e9b35c48610a2c23c5ed56a8a2c413fd43609.tar.gz
fasthttp-128e9b35c48610a2c23c5ed56a8a2c413fd43609.tar.bz2
fasthttp-128e9b35c48610a2c23c5ed56a8a2c413fd43609.zip
optimize: adjust the behavior of PeekAll based on VisitAll (#1403)v1.41.0
Diffstat (limited to 'header.go')
-rw-r--r--header.go25
1 files changed, 18 insertions, 7 deletions
diff --git a/header.go b/header.go
index 83f0d40..fd3defd 100644
--- a/header.go
+++ b/header.go
@@ -1811,11 +1811,17 @@ func (h *RequestHeader) peekAll(key []byte) [][]byte {
h.mulHeader = h.mulHeader[:0]
switch string(key) {
case HeaderHost:
- h.mulHeader = append(h.mulHeader, h.Host())
+ if host := h.Host(); len(host) > 0 {
+ h.mulHeader = append(h.mulHeader, host)
+ }
case HeaderContentType:
- h.mulHeader = append(h.mulHeader, h.ContentType())
+ if contentType := h.ContentType(); len(contentType) > 0 {
+ h.mulHeader = append(h.mulHeader, contentType)
+ }
case HeaderUserAgent:
- h.mulHeader = append(h.mulHeader, h.UserAgent())
+ if ua := h.UserAgent(); len(ua) > 0 {
+ h.mulHeader = append(h.mulHeader, ua)
+ }
case HeaderConnection:
if h.ConnectionClose() {
h.mulHeader = append(h.mulHeader, strClose)
@@ -1827,7 +1833,6 @@ func (h *RequestHeader) peekAll(key []byte) [][]byte {
case HeaderCookie:
if h.cookiesCollected {
h.mulHeader = append(h.mulHeader, appendRequestCookieBytes(nil, h.cookies))
- return [][]byte{appendRequestCookieBytes(nil, h.cookies)}
} else {
h.mulHeader = peekAllArgBytesToDst(h.mulHeader, h.h, key)
}
@@ -1853,11 +1858,17 @@ func (h *ResponseHeader) peekAll(key []byte) [][]byte {
h.mulHeader = h.mulHeader[:0]
switch string(key) {
case HeaderContentType:
- h.mulHeader = append(h.mulHeader, h.ContentType())
+ if contentType := h.ContentType(); len(contentType) > 0 {
+ h.mulHeader = append(h.mulHeader, contentType)
+ }
case HeaderContentEncoding:
- h.mulHeader = append(h.mulHeader, h.ContentEncoding())
+ if contentEncoding := h.ContentEncoding(); len(contentEncoding) > 0 {
+ h.mulHeader = append(h.mulHeader, contentEncoding)
+ }
case HeaderServer:
- h.mulHeader = append(h.mulHeader, h.Server())
+ if server := h.Server(); len(server) > 0 {
+ h.mulHeader = append(h.mulHeader, server)
+ }
case HeaderConnection:
if h.ConnectionClose() {
h.mulHeader = append(h.mulHeader, strClose)