diff --git a/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java b/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java index 9eab1497b..47e482db6 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java +++ b/apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java @@ -36,7 +36,9 @@ import java.util.Locale; import java.util.Random; import java.util.Set; +import net.i2p.crypto.SigType; import net.i2p.data.DataHelper; +import net.i2p.data.Destination; import net.i2p.data.Hash; import net.i2p.util.ConvertToHash; import net.i2p.util.I2PAppThread; @@ -88,6 +90,8 @@ public class TrackerClient implements Runnable { private static final int DHT_ANNOUNCE_PEERS = 4; public static final int PORT = 6881; private static final int MAX_TRACKERS = 12; + // tracker.welterde.i2p + private static final Hash DSA_ONLY_TRACKER = ConvertToHash.getHash("cfmqlafjfmgkzbt4r3jsfyhgsr5abgxryl6fnz3d3y5a365di5aa.b32.i2p"); private final I2PSnarkUtil _util; private final MetaInfo meta; @@ -362,12 +366,21 @@ public class TrackerClient implements Runnable { if (h == null) { if (_log.shouldLog(Log.WARN)) _log.warn("Bad announce URL: [" + ann + ']'); - return false; + return false; + } + // comment this out if tracker.welterde.i2p upgrades + if (h.equals(DSA_ONLY_TRACKER)) { + Destination dest = _util.getMyDestination(); + if (dest != null && dest.getSigType() != SigType.DSA_SHA1) { + if (_log.shouldLog(Log.WARN)) + _log.warn("Skipping incompatible tracker: " + ann); + return false; + } } if (existing.size() >= MAX_TRACKERS) { if (_log.shouldLog(Log.INFO)) _log.info("Not using announce URL, we have enough: [" + ann + ']'); - return false; + return false; } boolean rv = existing.add(h); if (!rv) {