From 4da8a91264e9abb0a41235215a226138c082185c Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Fri, 21 Feb 2025 13:50:39 -0500 Subject: [PATCH] CLI: Don't die on reseed test if one entry is bad --- .../i2p/router/networkdb/reseed/Reseeder.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java index 4defb78528..6e50ffd077 100644 --- a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java +++ b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java @@ -22,6 +22,7 @@ import java.util.StringTokenizer; import net.i2p.I2PAppContext; import net.i2p.crypto.SU3File; import net.i2p.data.Base64; +import net.i2p.data.DataFormatException; import net.i2p.data.DataHelper; import net.i2p.data.Hash; import net.i2p.data.router.RouterInfo; @@ -1288,14 +1289,21 @@ public class Reseeder { throw new IOException("su3 file too old"); java.util.zip.ZipFile zipf = new java.util.zip.ZipFile(zip); java.util.Enumeration<? extends java.util.zip.ZipEntry> entries = zipf.entries(); - int ri = 0, old = 0; + int ri = 0, old = 0, bad = 0; int oldver = 0, unreach = 0; while (entries.hasMoreElements()) { java.util.zip.ZipEntry entry = (java.util.zip.ZipEntry) entries.nextElement(); RouterInfo r = new RouterInfo(); InputStream in = zipf.getInputStream(entry); - r.readBytes(in); - in.close(); + try { + r.readBytes(in); + } catch (DataFormatException dfe) { + System.out.println("Bad entry " + entry.getName() + ": " + dfe); + bad++; + continue; + } finally { + in.close(); + } if (r.getPublished() > cutoff) ri++; else @@ -1306,6 +1314,8 @@ public class Reseeder { unreach++; } zipf.close(); + if (bad > 0) + System.out.println(bad + " bad entries"); if (old > 0) { System.out.println("Test failed for " + host + ", returned " + old + " old router infos"); fail++; -- GitLab