summaryrefslogtreecommitdiffstats
path: root/taskcluster/scripts/misc/fetch-content
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 01:14:29 +0000
commitfbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8 (patch)
tree4c1ccaf5486d4f2009f9a338a98a83e886e29c97 /taskcluster/scripts/misc/fetch-content
parentReleasing progress-linux version 124.0.1-1~progress7.99u1. (diff)
downloadfirefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.tar.xz
firefox-fbaf0bb26397aa498eb9156f06d5a6fe34dd7dd8.zip
Merging upstream version 125.0.1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'taskcluster/scripts/misc/fetch-content')
-rwxr-xr-xtaskcluster/scripts/misc/fetch-content19
1 files changed, 19 insertions, 0 deletions
diff --git a/taskcluster/scripts/misc/fetch-content b/taskcluster/scripts/misc/fetch-content
index 9e6a1f4ef0..6e7b625dce 100755
--- a/taskcluster/scripts/misc/fetch-content
+++ b/taskcluster/scripts/misc/fetch-content
@@ -188,6 +188,25 @@ def stream_download(url, sha256=None, size=None):
) if certifi else urllib.request.urlopen(url, timeout=60) as fh:
if not url.endswith(".gz") and fh.info().get("Content-Encoding") == "gzip":
fh = gzip.GzipFile(fileobj=fh)
+ else:
+ # when using gzip we can't compare size or length (inflated) against content-length (compressed)
+ content_length = fh.getheader("content-length")
+ if content_length:
+ try:
+ content_length = int(content_length)
+ except ValueError:
+ raise IntegrityError(
+ "content-length header for %s is not an integer; got %s"
+ % (url, content_length)
+ )
+ if size:
+ if size != content_length:
+ raise IntegrityError(
+ "size mismatch on %s: wanted %d; content-length is %d"
+ % (url, size, content_length)
+ )
+ else:
+ size = content_length
while True:
chunk = fh.read(65536)