gddo-server: Block the domain name zxq.co

We recently saw about 50K new packages from this domain. The packages
are all go-getable but appear to be spams. The contents fetched from gddo
or 'go get' are different than what the web host shows. We are blocking
this domain for now and investigating.

Change-Id: I9d3aa55366362941e66c8caea9b855ab1de65d7c
Reviewed-on: https://go-review.googlesource.com/42950
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/gddo-server/crawl.go b/gddo-server/crawl.go
index 9d4367f..9afdc00 100644
--- a/gddo-server/crawl.go
+++ b/gddo-server/crawl.go
@@ -19,7 +19,10 @@
 	"github.com/golang/gddo/gosrc"
 )
 
-var testdataPat = regexp.MustCompile(`/testdata(?:/|$)`)
+var (
+	testdataPat      = regexp.MustCompile(`/testdata(?:/|$)`)
+	blockedDomainPat = regexp.MustCompile(`^zxq\.co/`)
+)
 
 // crawlDoc fetches the package documentation from the VCS and updates the database.
 func crawlDoc(source string, importPath string, pdoc *doc.Package, hasSubdirs bool, nextCrawl time.Time) (*doc.Package, error) {
@@ -51,6 +54,9 @@
 	} else if blocked, e := db.IsBlocked(importPath); blocked && e == nil {
 		pdoc = nil
 		err = gosrc.NotFoundError{Message: "blocked."}
+	} else if blockedDomainPat.MatchString(importPath) {
+		pdoc = nil
+		err = gosrc.NotFoundError{Message: "blocked domain."}
 	} else if testdataPat.MatchString(importPath) {
 		pdoc = nil
 		err = gosrc.NotFoundError{Message: "testdata."}