aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2021-07-16 22:48:50 +0100
committermodmuss50 <modmuss50@gmail.com>2021-07-16 22:48:50 +0100
commit34b771f7447b181c27f7127ec77fda6eb465111a (patch)
treecec6371fe210cf4c98612fd005787c58911ba073 /src/main
parent777f30913b3d6f7bf313ffe3f6ac3811ae3af446 (diff)
downloadarchitectury-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')
-rw-r--r--src/main/java/net/fabricmc/loom/util/DownloadUtil.java10
-rw-r--r--src/main/java/net/fabricmc/loom/util/HashedDownloadUtil.java10
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;