]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: accept GOSUMDB=sum.golang.google.cn
authorRuss Cox <rsc@golang.org>
Wed, 21 Aug 2019 14:43:49 +0000 (10:43 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 21 Aug 2019 15:13:03 +0000 (15:13 +0000)
This CL makes the go command understand that
GOSUMDB=sum.golang.google.cn should connect
to that domain but expect to find a checksum database
signed by sum.golang.org there.

The host sum.golang.google.cn is not yet completely
configured; we hope it will be available in a few weeks.

Change-Id: Ie0fc4323f0c7084dda59bd3b45fc406717fa16d9
Reviewed-on: https://go-review.googlesource.com/c/go/+/191137
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
src/cmd/go/alldocs.go
src/cmd/go/internal/modfetch/fetch.go
src/cmd/go/internal/modfetch/sumdb.go

index 63ec2321be556cff1a8c0b6118a788054336c810..ebbead5d3169a53fe97df56cfaa096c0a7d31abd 100644 (file)
 //     GOSUMDB="sum.golang.org+<publickey>"
 //     GOSUMDB="sum.golang.org+<publickey> https://sum.golang.org"
 //
-// The go command knows the public key of sum.golang.org; use of any other
-// database requires giving the public key explicitly. The URL defaults to
-// "https://" followed by the database name.
+// The go command knows the public key of sum.golang.org, and also that the name
+// sum.golang.google.cn (available inside mainland China) connects to the
+// sum.golang.org checksum database; use of any other database requires giving
+// the public key explicitly.
+// The URL defaults to "https://" followed by the database name.
 //
 // GOSUMDB defaults to "sum.golang.org", the Go checksum database run by Google.
 // See https://sum.golang.org/privacy for the service's privacy policy.
index 74e36cc6fc1579cb2d3f2cf49a81abd0eedef72c..51a56028c4acbeab3d3c8b2130916b408a3e6921 100644 (file)
@@ -701,9 +701,11 @@ to use and optionally its public key and URL, as in:
        GOSUMDB="sum.golang.org+<publickey>"
        GOSUMDB="sum.golang.org+<publickey> https://sum.golang.org"
 
-The go command knows the public key of sum.golang.org; use of any other
-database requires giving the public key explicitly. The URL defaults to
-"https://" followed by the database name.
+The go command knows the public key of sum.golang.org, and also that the name
+sum.golang.google.cn (available inside mainland China) connects to the
+sum.golang.org checksum database; use of any other database requires giving
+the public key explicitly.
+The URL defaults to "https://" followed by the database name.
 
 GOSUMDB defaults to "sum.golang.org", the Go checksum database run by Google.
 See https://sum.golang.org/privacy for the service's privacy policy.
index b0bb3d4d5ea5a6d3ae37e805942f76cc2d077222..1c24ec273b57b4391e213f1199a04964144316d5 100644 (file)
@@ -60,7 +60,17 @@ func dbDial() (dbName string, db *sumweb.Conn, err error) {
        // $GOSUMDB can be "key" or "key url",
        // and the key can be a full verifier key
        // or a host on our list of known keys.
-       key := strings.Fields(cfg.GOSUMDB)
+
+       // Special case: sum.golang.google.cn
+       // is an alias, reachable inside mainland China,
+       // for sum.golang.org. If there are more
+       // of these we should add a map like knownGOSUMDB.
+       gosumdb := cfg.GOSUMDB
+       if gosumdb == "sum.golang.google.cn" {
+               gosumdb = "sum.golang.org https://sum.golang.google.cn"
+       }
+
+       key := strings.Fields(gosumdb)
        if len(key) >= 1 {
                if k := knownGOSUMDB[key[0]]; k != "" {
                        key[0] = k