Copy http.Header for each Target
Fixes #30 and likely other nasty problems with the internals of the http.Client mutating the shared Header. Thanks @timjnh for reporting.
This commit is contained in:
@@ -58,8 +58,13 @@ func (t Targets) Shuffle(seed int64) {
|
||||
}
|
||||
|
||||
// SetHeader sets the passed request header in all Targets
|
||||
// by making a copy for each
|
||||
func (t Targets) SetHeader(header http.Header) {
|
||||
for _, target := range t {
|
||||
target.Header = header
|
||||
target.Header = make(http.Header, len(header))
|
||||
for k, vs := range header {
|
||||
target.Header[k] = make([]string, len(vs))
|
||||
copy(target.Header[k], vs)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user