From ff8a02959cd6ae464a174b441fe1ab13c30c1533 Mon Sep 17 00:00:00 2001 From: iofq Date: Fri, 9 Aug 2024 19:36:48 -0500 Subject: [PATCH] fix throttled downloader --- http/download.go | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/http/download.go b/http/download.go index 6d5bf0cb..266fda5c 100644 --- a/http/download.go +++ b/http/download.go @@ -46,24 +46,22 @@ func NewDownloader(downLimit int64, maxTries int, progress aptly.Progress) aptly transport.RegisterProtocol("ftp", &protocol.FTPRoundTripper{}) downloader := &downloaderImpl{ - progress: progress, - maxTries: maxTries, + progress: progress, + maxTries: maxTries, + aggWriter: io.Writer(progress), client: &http.Client{ Transport: &transport, }, } - progressWriter := io.Writer(progress) if progress == nil { - progressWriter = io.Discard + downloader.aggWriter = io.Discard + } + if downLimit > 0 { + downloader.aggWriter = flowrate.NewWriter(progress, downLimit) } downloader.client.CheckRedirect = downloader.checkRedirect - if downLimit > 0 { - downloader.aggWriter = flowrate.NewWriter(progressWriter, downLimit) - } else { - downloader.aggWriter = progressWriter - } return downloader } @@ -260,11 +258,7 @@ func (downloader *downloaderImpl) download(req *http.Request, url, destination s defer outfile.Close() checksummer := utils.NewChecksumWriter() - writers := []io.Writer{outfile} - - if downloader.progress != nil { - writers = append(writers, downloader.progress) - } + writers := []io.Writer{outfile, downloader.aggWriter} if expected != nil { writers = append(writers, checksummer)