diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-09-27 10:42:44 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-09-27 10:44:35 +0200 |
commit | fbc3ceba56df06a61346f0b873f1e1d85c5b05a9 (patch) | |
tree | b21e74f9e0568273c8cc05df2ecd5f5c665444f7 /updater/downloader.go | |
parent | version: bump (diff) | |
download | wireguard-windows-fbc3ceba56df06a61346f0b873f1e1d85c5b05a9.tar.xz wireguard-windows-fbc3ceba56df06a61346f0b873f1e1d85c5b05a9.zip |
Revert "updater: use winhttp to reduce filesize"
This reverts commit b1a33fd099fdcc25b0edba9c0e3f2ea9f8d0d9c4.
We'll revisit this later.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'updater/downloader.go')
-rw-r--r-- | updater/downloader.go | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/updater/downloader.go b/updater/downloader.go index 6e606532..a12b5037 100644 --- a/updater/downloader.go +++ b/updater/downloader.go @@ -11,12 +11,11 @@ import ( "fmt" "hash" "io" + "net/http" "os" "sync/atomic" "golang.org/x/crypto/blake2b" - - "golang.zx2c4.com/wireguard/windows/updater/winhttp" "golang.zx2c4.com/wireguard/windows/version" ) @@ -48,13 +47,18 @@ type UpdateFound struct { } func CheckForUpdate() (*UpdateFound, error) { - response, err := winhttp.Get(version.UserAgent(), latestVersionURL) + request, err := http.NewRequest(http.MethodGet, latestVersionURL, nil) + if err != nil { + return nil, err + } + request.Header.Add("User-Agent", version.UserAgent()) + response, err := http.DefaultClient.Do(request) if err != nil { return nil, err } - defer response.Close() + defer response.Body.Close() var fileList [1024 * 512] /* 512 KiB */ byte - bytesRead, err := response.Read(fileList[:]) + bytesRead, err := response.Body.Read(fileList[:]) if err != nil && (err != io.EOF || bytesRead == 0) { return nil, err } @@ -108,15 +112,21 @@ func DownloadVerifyAndExecute(userToken uintptr) (progress chan DownloadProgress dp := DownloadProgress{Activity: "Downloading update"} progress <- dp - response, err := winhttp.Get(version.UserAgent(), fmt.Sprintf(msiURL, update.name)) + request, err := http.NewRequest(http.MethodGet, fmt.Sprintf(msiURL, update.name), nil) + if err != nil { + progress <- DownloadProgress{Error: err} + return + } + request.Header.Add("User-Agent", version.UserAgent()) + request.Header.Set("Accept-Encoding", "identity") + response, err := http.DefaultClient.Do(request) if err != nil { progress <- DownloadProgress{Error: err} return } - defer response.Close() - length, err := response.Length() - if err == nil && length >= 0 { - dp.BytesTotal = length + defer response.Body.Close() + if response.ContentLength >= 0 { + dp.BytesTotal = uint64(response.ContentLength) progress <- dp } hasher, err := blake2b.New256(nil) @@ -125,7 +135,7 @@ func DownloadVerifyAndExecute(userToken uintptr) (progress chan DownloadProgress return } pm := &progressHashWatcher{&dp, progress, hasher} - _, err = io.Copy(file, io.TeeReader(io.LimitReader(response, 1024*1024*100 /* 100 MiB */), pm)) + _, err = io.Copy(file, io.TeeReader(io.LimitReader(response.Body, 1024*1024*100 /* 100 MiB */), pm)) if err != nil { progress <- DownloadProgress{Error: err} return |