Merge pull request #325 from garyburd/redir

Enforce HTTPS on godoc.org
diff --git a/gddo-server/main.go b/gddo-server/main.go
index 18d909f..eea3e12 100644
--- a/gddo-server/main.go
+++ b/gddo-server/main.go
@@ -61,6 +61,7 @@
 	robotRequest
 	queryRequest
 	refreshRequest
+	apiRequest
 )
 
 type crawlResult struct {
@@ -85,7 +86,7 @@
 
 	needsCrawl := false
 	switch requestType {
-	case queryRequest:
+	case queryRequest, apiRequest:
 		needsCrawl = nextCrawl.IsZero() && len(pkgs) == 0
 	case humanRequest:
 		needsCrawl = nextCrawl.Before(time.Now())
@@ -599,7 +600,10 @@
 	var pkgs []database.Package
 
 	if gosrc.IsValidRemotePath(q) || (strings.Contains(q, "/") && gosrc.IsGoRepoPath(q)) {
-		pdoc, _, err := getDoc(q, robotRequest)
+		pdoc, _, err := getDoc(q, apiRequest)
+		if e, ok := err.(gosrc.NotFoundError); ok && e.Redirect != "" {
+			pdoc, _, err = getDoc(e.Redirect, robotRequest)
+		}
 		if err == nil && pdoc != nil {
 			pkgs = []database.Package{{Path: pdoc.ImportPath, Synopsis: pdoc.Synopsis}}
 		}