X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=refresh.go;h=0764a03385df16a2b681499da4b6f6f3f5377adb;hb=948543909470b983c001f13fb267a64070dd20ae;hp=11325e275c3d6c9f2002f97cd2dce6079e25c211;hpb=d452b7a33ed013e8aac742af419fd58ae62693d3;p=gocheese.git diff --git a/refresh.go b/refresh.go index 11325e2..0764a03 100644 --- a/refresh.go +++ b/refresh.go @@ -47,6 +47,15 @@ func blake2b256New() hash.Hash { return h } +func agentedReq(url string) *http.Request { + req, err := http.NewRequest("GET", url, nil) + if err != nil { + log.Fatalln(err) + } + req.Header.Set("User-Agent", UserAgent) + return req +} + func refreshDir( w http.ResponseWriter, r *http.Request, @@ -156,7 +165,7 @@ func refreshDir( return false } log.Println(r.RemoteAddr, "pypi", filename, "download") - resp, err = http.Get(uri) + resp, err = c.Do(agentedReq(uri)) if err != nil { log.Println("error", r.RemoteAddr, "pypi", filename, "download", err) http.Error(w, err.Error(), http.StatusBadGateway) @@ -207,12 +216,14 @@ func refreshDir( http.Error(w, "digest mismatch", http.StatusBadGateway) return false } - if err = dst.Sync(); err != nil { - os.Remove(dst.Name()) - dst.Close() - log.Println("error", r.RemoteAddr, "pypi", filename, err) - http.Error(w, err.Error(), http.StatusInternalServerError) - return false + if !NoSync { + if err = dst.Sync(); err != nil { + os.Remove(dst.Name()) + dst.Close() + log.Println("error", r.RemoteAddr, "pypi", filename, err) + http.Error(w, err.Error(), http.StatusInternalServerError) + return false + } } if err = dst.Close(); err != nil { log.Println("error", r.RemoteAddr, "pypi", filename, err) @@ -241,7 +252,7 @@ func refreshDir( if _, err = os.Stat(path); err != nil { goto GPGSigSkip } - resp, err := http.Get(uri + GPGSigExt) + resp, err := c.Do(agentedReq(uri + GPGSigExt)) if err != nil { goto GPGSigSkip }