From: Brad Fitzpatrick Date: Wed, 4 Apr 2012 14:24:13 +0000 (-0700) Subject: [release-branch.go1] cmd/go: in go get, don't try to perform discovery on non-hosts X-Git-Tag: go1.0.1~43 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c3882041a9ad91cb3ff40ca5fe7edde7d8ac07d2;p=gostls13.git [release-branch.go1] cmd/go: in go get, don't try to perform discovery on non-hosts ««« backport 2a52a9484c10 cmd/go: in go get, don't try to perform discovery on non-hosts Before, "go get -v foo/bar" was assuming "foo" was a hostname and trying to perform discovery on it. Now, require a dot in the first path component (the hostname). R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5981057 »»» --- diff --git a/src/cmd/go/vcs.go b/src/cmd/go/vcs.go index 5f63f8b568..1c121672f9 100644 --- a/src/cmd/go/vcs.go +++ b/src/cmd/go/vcs.go @@ -422,11 +422,15 @@ func repoRootForImportPathStatic(importPath, scheme string) (*repoRoot, error) { func repoRootForImportDynamic(importPath string) (*repoRoot, error) { slash := strings.Index(importPath, "/") if slash < 0 { - return nil, fmt.Errorf("missing / in import %q", importPath) + return nil, errors.New("import path doesn't contain a slash") + } + host := importPath[:slash] + if !strings.Contains(host, ".") { + return nil, errors.New("import path doesn't contain a hostname") } urlStr, body, err := httpsOrHTTP(importPath) if err != nil { - return nil, fmt.Errorf("http/https fetch for import %q: %v", importPath, err) + return nil, fmt.Errorf("http/https fetch: %v", err) } defer body.Close() metaImport, err := matchGoImport(parseMetaGoImports(body), importPath)