diff --git a/core/java/src/net/i2p/util/EepGet.java b/core/java/src/net/i2p/util/EepGet.java index 3fec768a5857cf153a9bc7d0606019ffcd56d54a..ace31ab720f5d62cbd68deb8de058d7c83353fa1 100644 --- a/core/java/src/net/i2p/util/EepGet.java +++ b/core/java/src/net/i2p/util/EepGet.java @@ -537,6 +537,15 @@ public class EepGet { if (_redirects > 5) throw new IOException("Too many redirects: to " + _redirectLocation); if (_log.shouldLog(Log.INFO)) _log.info("Redirecting to " + _redirectLocation); + + // reset some important variables, we don't want to save the values from the redirect + _bytesRemaining = -1; + _redirectLocation = null; + _etag = null; + _lastModified = null; + _contentType = null; + _encodingChunked = false; + sendRequest(timeout); doFetch(timeout); return; diff --git a/core/java/src/net/i2p/util/EepHead.java b/core/java/src/net/i2p/util/EepHead.java index 938241616a86ac608940679af6e80e6fd1bcf419..c3a17bbea594b43607380a6cb7cb40a56ec8cd22 100644 --- a/core/java/src/net/i2p/util/EepHead.java +++ b/core/java/src/net/i2p/util/EepHead.java @@ -116,6 +116,7 @@ public class EepHead extends EepGet { else timeout.setInactivityTimeout(60*1000); + // Should we even follow redirects for HEAD? if (_redirectLocation != null) { //try { URL oldURL = new URL(_actualURL); @@ -143,6 +144,15 @@ public class EepHead extends EepGet { if (_redirects > 5) throw new IOException("Too many redirects: to " + _redirectLocation); if (_log.shouldLog(Log.INFO)) _log.info("Redirecting to " + _redirectLocation); + + // reset some important variables, we don't want to save the values from the redirect + _bytesRemaining = -1; + _redirectLocation = null; + _etag = null; + _lastModified = null; + _contentType = null; + _encodingChunked = false; + sendRequest(timeout); doFetch(timeout); return;