remoteRequest creates a new HTTP request to a remote server.
(u string, start, end int64)
| 267 | |
| 268 | // remoteRequest creates a new HTTP request to a remote server. |
| 269 | func (r *reader) remoteRequest(u string, start, end int64) (*http.Request, error) { |
| 270 | req, err := http.NewRequest("GET", u, nil) |
| 271 | if err != nil { |
| 272 | return nil, err |
| 273 | } |
| 274 | |
| 275 | for key, vals := range r.context.Request.Header { |
| 276 | vals2 := make([]string, len(vals)) |
| 277 | copy(vals2, vals) |
| 278 | req.Header[key] = vals2 |
| 279 | } |
| 280 | |
| 281 | req.Header.Set("Range", fmt.Sprintf("bytes=%d-%d", start, end)) |
| 282 | pcontext.SetOutboundHeaders(req, r.context) |
| 283 | |
| 284 | return req, nil |
| 285 | } |
| 286 | |
| 287 | // NewReader creates a new remote reader. |
| 288 | func NewReader(c pcontext.Context, router routing.Router, resolveRetries int, resolveTimeout time.Duration, metricsRecorder metrics.Metrics) Reader { |
no test coverage detected