diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java index abba2afd..c8142c92 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java @@ -326,6 +326,11 @@ public class ArbitraryDataManager extends Thread { } private boolean shouldMakeDirectFileRequestsForSignature(String signature58) { + if (!Settings.getInstance().isDirectDataRetrievalEnabled()) { + // Direct connections are disabled in the settings + return false; + } + Triple request = arbitraryDataSignatureRequests.get(signature58); if (request == null) { diff --git a/src/main/java/org/qortal/settings/Settings.java b/src/main/java/org/qortal/settings/Settings.java index d11aff40..871a7e1a 100644 --- a/src/main/java/org/qortal/settings/Settings.java +++ b/src/main/java/org/qortal/settings/Settings.java @@ -282,6 +282,9 @@ public class Settings { /** Whether to allow data outside of the storage policy to be relayed between other peers */ private boolean relayModeEnabled = false; + /** Whether to make connections directly with peers that have the required data */ + private boolean directDataRetrievalEnabled = true; + /** Expiry time (ms) for (unencrypted) built/cached data */ private Long builtDataExpiryInterval = 30 * 24 * 60 * 60 * 1000L; // 30 days @@ -835,6 +838,10 @@ public class Settings { return this.relayModeEnabled; } + public boolean isDirectDataRetrievalEnabled() { + return this.directDataRetrievalEnabled; + } + public Long getBuiltDataExpiryInterval() { return this.builtDataExpiryInterval; }