diff --git a/core/java/src/net/i2p/util/EepGet.java b/core/java/src/net/i2p/util/EepGet.java index 23e550f8a3c425a85ef6e9f7ad84be4505ca7437..d9aae40f021d62244b51e5858facc2e0b5ecc953 100644 --- a/core/java/src/net/i2p/util/EepGet.java +++ b/core/java/src/net/i2p/util/EepGet.java @@ -34,7 +34,6 @@ import net.i2p.data.Base32; import net.i2p.data.Base64; import net.i2p.data.ByteArray; import net.i2p.data.DataHelper; -import net.i2p.util.InternalSocket; /** * EepGet [-p 127.0.0.1:4444] @@ -174,6 +173,7 @@ public class EepGet { _bytesRemaining = -1; _fetchHeaderTimeout = CONNECT_TIMEOUT; _listeners = new ArrayList<StatusListener>(1); + _allowCaching = allowCaching; _etag = etag; _lastModified = lastModified; _etagOrig = etag; diff --git a/core/java/src/net/i2p/util/SSLEepGet.java b/core/java/src/net/i2p/util/SSLEepGet.java index c771f9096a4033fe0bc14ac572d64f9eb90572d0..6aef33b5674667bceb9dc574963804776b4374a9 100644 --- a/core/java/src/net/i2p/util/SSLEepGet.java +++ b/core/java/src/net/i2p/util/SSLEepGet.java @@ -99,6 +99,7 @@ public class SSLEepGet extends EepGet { /** may be null if init failed */ private SavingTrustManager _stm; private final ProxyType _proxyType; + private int _forceDoH; private static final String CERT_DIR = "certificates/ssl"; private static final String PROP_USE_DNS_OVER_HTTPS = "eepget.useDNSOverHTTPS"; @@ -547,6 +548,15 @@ public class SSLEepGet extends EepGet { return new SSLState(_sslContext); } + /** + * Override the config setting, force DNSoverHTTPS on or off + * Call before the fetch. + * @since 0.9.49 + */ + public void forceDNSOverHTTPS(boolean on) { + _forceDoH = on ? 2 : 1; + } + ///// end of all the SSL stuff ///// start of overrides @@ -732,10 +742,16 @@ public class SSLEepGet extends EepGet { port = 443; String originalHost = host; - boolean useDNSOverHTTPS = _context.getProperty(PROP_USE_DNS_OVER_HTTPS, DEFAULT_USE_DNS_OVER_HTTPS); + boolean useDNSOverHTTPS; + if (_forceDoH == 2) + useDNSOverHTTPS = true; + else if (_forceDoH == 1) + useDNSOverHTTPS = false; + else + useDNSOverHTTPS = _context.getProperty(PROP_USE_DNS_OVER_HTTPS, DEFAULT_USE_DNS_OVER_HTTPS); // This duplicates checks in DNSOverHTTPS.lookup() but do it here too so // we don't even construct it if we don't need it - if (useDNSOverHTTPS && !host.equals("dns.google.com") && !Addresses.isIPAddress(host)) { + if (useDNSOverHTTPS && !host.equals("dns.google") && !Addresses.isIPAddress(host)) { DNSOverHTTPS doh = new DNSOverHTTPS(_context, getSSLState()); String ip = doh.lookup(host); if (ip != null)