From b573fe461f3bf799ef0c3e45b137915c6ba4e470 Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Thu, 20 Jun 2024 11:21:42 -0400 Subject: [PATCH] i2ptunnel: Reduce severity of access filter errors (Gitlab #483) So they don't prevent the tunnel from starting Log tweaks --- .../src/net/i2p/i2ptunnel/I2PTunnelServer.java | 5 ++++- .../net/i2p/i2ptunnel/access/AccessFilter.java | 2 +- .../access/FileFilterDefinitionElement.java | 15 ++++++++++++--- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java index aa9dea2c25..b9e012d7e8 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java @@ -234,7 +234,10 @@ public class I2PTunnelServer extends I2PTunnelTask implements Runnable { try { _filter = FilterFactory.createFilter(context, filterDefinition); } catch (IOException | InvalidDefinitionException bad) { - throw new IllegalArgumentException("Bad filter definition file: " + bad.getMessage(), bad); + String msg = "Bad filter definition file: " + filterDefinition + " - filtering disabled: " + bad.getMessage(); + _log.error(msg, bad); + l.log(msg); + _filter = null; } } diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java index 698bb1edb9..bd0cba3916 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/AccessFilter.java @@ -236,7 +236,7 @@ class AccessFilter implements StatefulConnectionFilter { syncer.schedule(SYNC_INTERVAL); } catch (IOException bad) { Log log = context.logManager().getLog(AccessFilter.class); - log.log(Log.CRIT, "syncing access list failed", bad); + log.error("syncing access list failed", bad); } } }); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FileFilterDefinitionElement.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FileFilterDefinitionElement.java index cbeedac7eb..b6976060c2 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FileFilterDefinitionElement.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/access/FileFilterDefinitionElement.java @@ -8,7 +8,9 @@ import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; +import net.i2p.I2PAppContext; import net.i2p.data.Hash; +import net.i2p.util.Log; /** * An element of filter definition that reads hashes of remote destinations @@ -55,7 +57,16 @@ class FileFilterDefinitionElement extends FilterDefinitionElement { reader = new BufferedReader(new FileReader(file)); String b32; while((b32 = reader.readLine()) != null) { - Hash hash = fromBase32(b32); + if (b32.length() == 0) + continue; + Hash hash; + try { + hash = fromBase32(b32); + } catch (InvalidDefinitionException bad32) { + Log log = I2PAppContext.getGlobalContext().logManager().getLog(FileFilterDefinitionElement.class); + log.error("Invalid access list entry \"" + b32 + "\" in " + file, bad32); + continue; + } if (map.containsKey(hash)) continue; DestTracker newTracker = new DestTracker(hash, threshold); @@ -64,8 +75,6 @@ class FileFilterDefinitionElement extends FilterDefinitionElement { lastLoaded.put(hash, newTracker); } } - } catch (InvalidDefinitionException bad32) { - throw new IOException("invalid access list entry", bad32); } finally { if (reader != null) { try { reader.close(); } catch (IOException ignored) {} -- GitLab