diff options
author | modmuss50 <modmuss50@gmail.com> | 2021-07-16 22:48:50 +0100 |
---|---|---|
committer | modmuss50 <modmuss50@gmail.com> | 2021-07-16 22:48:50 +0100 |
commit | 34b771f7447b181c27f7127ec77fda6eb465111a (patch) | |
tree | cec6371fe210cf4c98612fd005787c58911ba073 /src/main/java | |
parent | 777f30913b3d6f7bf313ffe3f6ac3811ae3af446 (diff) | |
download | architectury-loom-34b771f7447b181c27f7127ec77fda6eb465111a.tar.gz architectury-loom-34b771f7447b181c27f7127ec77fda6eb465111a.tar.bz2 architectury-loom-34b771f7447b181c27f7127ec77fda6eb465111a.zip |
Actually handle gzip encoded connections when downloading.
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/net/fabricmc/loom/util/DownloadUtil.java | 10 | ||||
-rw-r--r-- | src/main/java/net/fabricmc/loom/util/HashedDownloadUtil.java | 10 |
2 files changed, 18 insertions, 2 deletions
diff --git a/src/main/java/net/fabricmc/loom/util/DownloadUtil.java b/src/main/java/net/fabricmc/loom/util/DownloadUtil.java index 90131b4c..fcc79aa7 100644 --- a/src/main/java/net/fabricmc/loom/util/DownloadUtil.java +++ b/src/main/java/net/fabricmc/loom/util/DownloadUtil.java @@ -26,9 +26,11 @@ package net.fabricmc.loom.util; import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; +import java.util.zip.GZIPInputStream; import com.google.common.io.Files; import org.apache.commons.io.FileUtils; @@ -110,7 +112,13 @@ public class DownloadUtil { } try { // Try download to the output - FileUtils.copyInputStreamToFile(connection.getInputStream(), to); + InputStream inputStream = connection.getInputStream(); + + if ("gzip".equals(connection.getContentEncoding())) { + inputStream = new GZIPInputStream(inputStream); + } + + FileUtils.copyInputStreamToFile(inputStream, to); } catch (IOException e) { delete(to); // Probably isn't good if it fails to copy/save throw e; diff --git a/src/main/java/net/fabricmc/loom/util/HashedDownloadUtil.java b/src/main/java/net/fabricmc/loom/util/HashedDownloadUtil.java index b8628c29..3ca404e2 100644 --- a/src/main/java/net/fabricmc/loom/util/HashedDownloadUtil.java +++ b/src/main/java/net/fabricmc/loom/util/HashedDownloadUtil.java @@ -27,9 +27,11 @@ package net.fabricmc.loom.util; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.nio.charset.StandardCharsets; +import java.util.zip.GZIPInputStream; import javax.annotation.Nullable; @@ -78,7 +80,13 @@ public class HashedDownloadUtil { } try { // Try download to the output - FileUtils.copyInputStreamToFile(connection.getInputStream(), to); + InputStream inputStream = connection.getInputStream(); + + if ("gzip".equals(connection.getContentEncoding())) { + inputStream = new GZIPInputStream(inputStream); + } + + FileUtils.copyInputStreamToFile(inputStream, to); } catch (IOException e) { delete(to); // Probably isn't good if it fails to copy/save throw e; |