Skip to content

Commit 0b502af

Browse files
committed
download: fix extra logs when context is canceled
1 parent 91ac75c commit 0b502af

2 files changed

Lines changed: 17 additions & 4 deletions

File tree

download-to-file.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,13 @@ func (cli *Client) DownloadMediaWithPathToFile(
9494
// TODO omit hash for unencrypted media?
9595
mediaURL := fmt.Sprintf("https://%s%s&hash=%s&mms-type=%s&__wa-mms=", host.Hostname, directPath, base64.URLEncoding.EncodeToString(encFileHash), mmsType)
9696
err = cli.downloadAndDecryptToFile(ctx, mediaURL, mediaKey, mediaType, fileLength, encFileHash, fileHash, file)
97-
if err == nil || errors.Is(err, ErrFileLengthMismatch) || errors.Is(err, ErrInvalidMediaSHA256) ||
98-
errors.Is(err, ErrMediaDownloadFailedWith403) || errors.Is(err, ErrMediaDownloadFailedWith404) || errors.Is(err, ErrMediaDownloadFailedWith410) {
97+
if err == nil ||
98+
errors.Is(err, ErrFileLengthMismatch) ||
99+
errors.Is(err, ErrInvalidMediaSHA256) ||
100+
errors.Is(err, ErrMediaDownloadFailedWith403) ||
101+
errors.Is(err, ErrMediaDownloadFailedWith404) ||
102+
errors.Is(err, ErrMediaDownloadFailedWith410) ||
103+
errors.Is(err, context.Canceled) {
99104
return err
100105
} else if i >= len(mediaConn.Hosts)-1 {
101106
return fmt.Errorf("failed to download media from last host: %w", err)

download.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,13 @@ func (cli *Client) DownloadMediaWithPath(
257257
// TODO omit hash for unencrypted media?
258258
mediaURL := fmt.Sprintf("https://%s%s&hash=%s&mms-type=%s&__wa-mms=", host.Hostname, directPath, base64.URLEncoding.EncodeToString(encFileHash), mmsType)
259259
data, err = cli.downloadAndDecrypt(ctx, mediaURL, mediaKey, mediaType, fileLength, encFileHash, fileHash)
260-
if err == nil || errors.Is(err, ErrFileLengthMismatch) || errors.Is(err, ErrInvalidMediaSHA256) ||
261-
errors.Is(err, ErrMediaDownloadFailedWith403) || errors.Is(err, ErrMediaDownloadFailedWith404) || errors.Is(err, ErrMediaDownloadFailedWith410) {
260+
if err == nil ||
261+
errors.Is(err, ErrFileLengthMismatch) ||
262+
errors.Is(err, ErrInvalidMediaSHA256) ||
263+
errors.Is(err, ErrMediaDownloadFailedWith403) ||
264+
errors.Is(err, ErrMediaDownloadFailedWith404) ||
265+
errors.Is(err, ErrMediaDownloadFailedWith410) ||
266+
errors.Is(err, context.Canceled) {
262267
return
263268
} else if i >= len(mediaConn.Hosts)-1 {
264269
return nil, fmt.Errorf("failed to download media from last host: %w", err)
@@ -302,6 +307,9 @@ func getMediaKeys(mediaKey []byte, appInfo MediaType) (iv, cipherKey, macKey, re
302307
}
303308

304309
func shouldRetryMediaDownload(err error) bool {
310+
if errors.Is(err, context.Canceled) {
311+
return false
312+
}
305313
var netErr net.Error
306314
var httpErr DownloadHTTPError
307315
return errors.As(err, &netErr) ||

0 commit comments

Comments
 (0)