in internal/config/config.go [290:317]
func parseHeaderString(customHeaders []string) (http.Header, error) {
headers := make(http.Header, len(customHeaders))
var result *multierror.Error
for _, h := range customHeaders {
h = h + "\n\n"
tp := textproto.NewReader(bufio.NewReader(strings.NewReader(h)))
mimeHeader, err := tp.ReadMIMEHeader()
if err != nil {
result = multierror.Append(result, fmt.Errorf("parsing error %s: %w", h, errInvalidHeaderParameter))
}
for key, value := range mimeHeader {
if _, ok := headers[key]; ok {
result = multierror.Append(result, fmt.Errorf("%s already specified with value '%s': %w", key, value, errDuplicateHeader))
}
headers[key] = value
}
}
if result.ErrorOrNil() != nil {
return nil, result
}
return headers, nil
}