MCPcopy Create free account
hub / github.com/Azure/peerd / preadRemote

Method preadRemote

pkg/discovery/content/reader/reader.go:227–256  ·  view source on GitHub ↗

preadRemote reads the file.

(log zerolog.Logger, req *http.Request, client *http.Client, buf []byte)

Source from the content-addressed store, hash-verified

225
226// preadRemote reads the file.
227func (r *reader) preadRemote(log zerolog.Logger, req *http.Request, client *http.Client, buf []byte) (int, error) {
228 log.Debug().Str("url", req.URL.String()).Str("range", req.Header.Get("Range")).Msg("reader preadRemote start")
229 statusCode := -1
230 s := time.Now()
231 defer func() {
232 log.Debug().Int("status", statusCode).Dur("duration", time.Since(s)).Msg("reader preadRemote stop")
233 }()
234
235 resp, err := client.Do(req)
236 if resp != nil {
237 statusCode = resp.StatusCode
238 }
239 if err != nil {
240 detailedErr := Error{resp, err}
241 log.Error().Err(detailedErr).Str("url", req.URL.String()).Str("range", req.Header.Get("Range")).Msg("reader preadRemote error")
242 return 0, detailedErr
243 }
244 defer func() {
245 if closeErr := resp.Body.Close(); closeErr != nil {
246 log.Error().Err(closeErr).Msg("reader preadRemote body close error")
247 }
248 }()
249
250 if resp.StatusCode != 200 && resp.StatusCode != 206 {
251 log.Error().Err(err).Int("status", resp.StatusCode).Msg("reader preadRemote error")
252 return 0, Error{resp, fmt.Errorf("unexpected response code: %d", resp.StatusCode)}
253 }
254
255 return io.ReadFull(resp.Body, buf)
256}
257
258// originRequest will create a new request to origin.
259func (r *reader) originRequest(start, end int64) (*http.Request, error) {

Callers 2

PreadRemoteMethod · 0.95
doP2pMethod · 0.95

Calls 2

CloseMethod · 0.65
GetMethod · 0.45

Tested by

no test coverage detected