}
}
- fetch := func(url *urlpkg.URL) (*urlpkg.URL, *http.Response, error) {
+ fetch := func(url *urlpkg.URL) (*http.Response, error) {
// Note: The -v build flag does not mean "print logging information",
// despite its historical misuse for this in GOPATH-based go get.
// We print extra logging in -x mode instead, which traces what
req, err := http.NewRequest("GET", url.String(), nil)
if err != nil {
- return nil, nil, err
+ return nil, err
}
if url.Scheme == "https" {
auth.AddCredentials(req)
release, err := base.AcquireNet()
if err != nil {
- return nil, nil, err
+ return nil, err
}
var res *http.Response
// CheckRedirect fails, and even then the returned Response.Body is
// already closed.”
release()
- return nil, nil, err
+ return nil, err
}
// “If the returned error is nil, the Response will contain a non-nil Body
ReadCloser: body,
afterClose: release,
}
- return url, res, err
+ return res, err
}
var (
*secure = *url
secure.Scheme = "https"
- fetched, res, err = fetch(secure)
- if err != nil {
+ res, err = fetch(secure)
+ if err == nil {
+ fetched = secure
+ } else {
if cfg.BuildX {
fmt.Fprintf(os.Stderr, "# get %s: %v\n", secure.Redacted(), err)
}
return nil, fmt.Errorf("refusing to pass credentials to insecure URL: %s", insecure.Redacted())
}
- fetched, res, err = fetch(insecure)
- if err != nil {
+ res, err = fetch(insecure)
+ if err == nil {
+ fetched = insecure
+ } else {
if cfg.BuildX {
fmt.Fprintf(os.Stderr, "# get %s: %v\n", insecure.Redacted(), err)
}