diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2016-03-10 17:22:59 +0200 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2016-03-10 17:22:59 +0200 |
commit | 38356e216e31bf735e1fe64cc5bc3514c9c4d463 (patch) | |
tree | 0cb4bcd36a7c8e6adc20d0782b9d739c64b73705 /args.go | |
parent | Added anti-copy guard to FS type (diff) | |
download | fasthttp-38356e216e31bf735e1fe64cc5bc3514c9c4d463.tar.gz fasthttp-38356e216e31bf735e1fe64cc5bc3514c9c4d463.tar.bz2 fasthttp-38356e216e31bf735e1fe64cc5bc3514c9c4d463.zip |
Issue #64: properly delete header values via Del call
Diffstat (limited to 'args.go')
-rw-r--r-- | args.go | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -140,7 +140,7 @@ func (a *Args) Del(key string) { // DelBytes deletes argument with the given key from query args. func (a *Args) DelBytes(key []byte) { - a.args = delArg(a.args, key) + a.args = delAllArgs(a.args, key) } // Set sets 'key=value' argument. @@ -286,6 +286,16 @@ func copyArgs(dst, src []argsKV) []argsKV { return dst } +func delAllArgs(args []argsKV, key []byte) []argsKV { + for { + argsNew := delArg(args, key) + if len(argsNew) == len(args) { + return args + } + args = argsNew + } +} + func delArg(args []argsKV, key []byte) []argsKV { for i, n := 0, len(args); i < n; i++ { kv := &args[i] |