cmd/go/internal/modfetch: disable network with -tags cmd_go_bootstrap The bootstrap copy of cmd/go can't use net/http. Make that easy. Change-Id: Idf01bf37a773ae46e2e5d729ea3f7cd24e1111d1 Reviewed-on: https://go-review.googlesource.com/118315 Run-TryBot: Russ Cox <rsc@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
diff --git a/vendor/cmd/go/internal/modfetch/domain.go b/vendor/cmd/go/internal/modfetch/domain.go index 6e7b327..2494f80 100644 --- a/vendor/cmd/go/internal/modfetch/domain.go +++ b/vendor/cmd/go/internal/modfetch/domain.go
@@ -16,7 +16,6 @@ "cmd/go/internal/modfetch/codehost" "cmd/go/internal/modfetch/gitrepo" - web "cmd/go/internal/web2" ) // metaImport represents the parsed <meta name="go-import" @@ -34,11 +33,7 @@ return nil, fmt.Errorf("unknown module %s: not a domain name", path) } var body io.ReadCloser - err := web.Get( - "https://"+path+"?go-get=1", - web.Non200OK(), - web.Body(&body), - ) + err := webGetGoGet("https://"+path+"?go-get=1", &body) if body != nil { defer body.Close() }
diff --git a/vendor/cmd/go/internal/modfetch/noweb.go b/vendor/cmd/go/internal/modfetch/noweb.go new file mode 100644 index 0000000..9d713dc --- /dev/null +++ b/vendor/cmd/go/internal/modfetch/noweb.go
@@ -0,0 +1,24 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build cmd_go_bootstrap + +package modfetch + +import ( + "fmt" + "io" +) + +func webGetGoGet(url string, body *io.ReadCloser) error { + return fmt.Errorf("no network in go_bootstrap") +} + +func webGetBytes(url string, body *[]byte) error { + return fmt.Errorf("no network in go_bootstrap") +} + +func webGetBody(url string, body *io.ReadCloser) error { + return fmt.Errorf("no network in go_bootstrap") +}
diff --git a/vendor/cmd/go/internal/modfetch/proxy.go b/vendor/cmd/go/internal/modfetch/proxy.go index 089883d..419323b 100644 --- a/vendor/cmd/go/internal/modfetch/proxy.go +++ b/vendor/cmd/go/internal/modfetch/proxy.go
@@ -16,7 +16,6 @@ "cmd/go/internal/modfetch/codehost" "cmd/go/internal/semver" - web "cmd/go/internal/web2" ) var proxyURL = os.Getenv("GOPROXY") @@ -45,7 +44,7 @@ func (p *proxyRepo) Versions(prefix string) ([]string, error) { var data []byte - err := web.Get(p.url+"/@v/list", web.ReadAllBody(&data)) + err := webGetBytes(p.url+"/@v/list", &data) if err != nil { return nil, err } @@ -61,7 +60,7 @@ func (p *proxyRepo) latest() (*RevInfo, error) { var data []byte - err := web.Get(p.url+"/@v/list", web.ReadAllBody(&data)) + err := webGetBytes(p.url+"/@v/list", &data) if err != nil { return nil, err } @@ -91,7 +90,7 @@ func (p *proxyRepo) Stat(rev string) (*RevInfo, error) { var data []byte - err := web.Get(p.url+"/@v/"+pathEscape(rev)+".info", web.ReadAllBody(&data)) + err := webGetBytes(p.url+"/@v/"+pathEscape(rev)+".info", &data) if err != nil { return nil, err } @@ -105,7 +104,7 @@ func (p *proxyRepo) Latest() (*RevInfo, error) { var data []byte u := p.url + "/@latest" - err := web.Get(u, web.ReadAllBody(&data)) + err := webGetBytes(u, &data) if err != nil { // TODO return err if not 404 return p.latest() @@ -119,7 +118,7 @@ func (p *proxyRepo) GoMod(version string) ([]byte, error) { var data []byte - err := web.Get(p.url+"/@v/"+pathEscape(version)+".mod", web.ReadAllBody(&data)) + err := webGetBytes(p.url+"/@v/"+pathEscape(version)+".mod", &data) if err != nil { return nil, err } @@ -128,7 +127,7 @@ func (p *proxyRepo) Zip(version string, tmpdir string) (tmpfile string, err error) { var body io.ReadCloser - err = web.Get(p.url+"/@v/"+pathEscape(version)+".zip", web.Body(&body)) + err = webGetBody(p.url+"/@v/"+pathEscape(version)+".zip", &body) if err != nil { return "", err }
diff --git a/vendor/cmd/go/internal/modfetch/web.go b/vendor/cmd/go/internal/modfetch/web.go new file mode 100644 index 0000000..b327bf2 --- /dev/null +++ b/vendor/cmd/go/internal/modfetch/web.go
@@ -0,0 +1,31 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !cmd_go_bootstrap + +package modfetch + +import ( + "io" + + web "cmd/go/internal/web2" +) + +// webGetGoGet fetches a go-get=1 URL and returns the body in *body. +// It allows non-200 responses, as usual for these URLs. +func webGetGoGet(url string, body *io.ReadCloser) error { + return web.Get(url, web.Non200OK(), web.Body(body)) +} + +// webGetBytes returns the body returned by an HTTP GET, as a []byte. +// It insists on a 200 response. +func webGetBytes(url string, body *[]byte) error { + return web.Get(url, web.ReadAllBody(body)) +} + +// webGetBody returns the body returned by an HTTP GET, as a io.ReadCloser. +// It insists on a 200 response. +func webGetBody(url string, body *io.ReadCloser) error { + return web.Get(url, web.Body(body)) +}