diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java index 3d53d9626..7696a33a8 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/BanlistRenderer.java @@ -57,7 +57,7 @@ class BanlistRenderer { buf.append("
  • ").append(_context.commSystem().renderPeerHTML(key)); buf.append(' '); String expireString = DataHelper.formatDuration2(expires); - if (key.equals(Hash.FAKE_HASH)) + if (key.equals(Hash.FAKE_HASH) || key.equals(Banlist.HASH_ZERORI)) buf.append(_t("Permanently banned")); else if (expires < 5l*24*60*60*1000) buf.append(_t("Temporary ban expiring in {0}", expireString)); diff --git a/router/java/src/net/i2p/router/Banlist.java b/router/java/src/net/i2p/router/Banlist.java index 10be23c89..113f4a669 100644 --- a/router/java/src/net/i2p/router/Banlist.java +++ b/router/java/src/net/i2p/router/Banlist.java @@ -18,6 +18,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import net.i2p.data.Base64; import net.i2p.data.DataHelper; import net.i2p.data.Hash; import net.i2p.router.peermanager.PeerProfile; @@ -35,6 +36,12 @@ public class Banlist { private final Log _log; private final RouterContext _context; private final Map _entries; + + /** + * hash of 387 zeros + * @since 0.9.66 + */ + public static final Hash HASH_ZERORI = new Hash(Base64.decode("MRn86w6tHQgE25D7DIejOBCJ-dImSjdsQaOaBuUypkE=")); public static class Entry { /** when it should expire, per the i2p clock */ @@ -70,6 +77,7 @@ public class Banlist { _context.jobQueue().addJob(new Cleanup(_context)); // i2pd bug? banlistRouterForever(Hash.FAKE_HASH, "Invalid Hash"); + banlistRouterForever(HASH_ZERORI, "Invalid Hash"); } private class Cleanup extends JobImpl {