aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/updater/downloader.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-09-27 10:42:44 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-09-27 10:44:35 +0200
commitfbc3ceba56df06a61346f0b873f1e1d85c5b05a9 (patch)
treeb21e74f9e0568273c8cc05df2ecd5f5c665444f7 /updater/downloader.go
parentversion: bump (diff)
downloadwireguard-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.go32
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