Empty deny file in Tunnel Filter causes IOException errors and prevents tunnels from functioning
In the tunnel filter feature, if a file referenced by a deny rule is empty, or is cleared while the tunnel is running, an IOException will occur causing all tunnels to fail.
A restart of the router will cause all tunnels using a tunnel filter referencing the empty file to fail to start.
Possible fix: http://git.skank.i2p/i2pplus/I2P.Plus/commit/e7f650c117801f5e8605b5a76e15b6958d059110
Stacktrace:
…TunnelController: Error starting tunnel [...]
java.lang.IllegalArgumentException: Bad filter definition file: Invalid entry in Tunnel Filter access list (Bad b32)
at net.i2p.i2ptunnel.I2PTunnelServer.createManager(I2PTunnelServer.java:244)
at net.i2p.i2ptunnel.I2PTunnelServer.<init>(I2PTunnelServer.java:151)
at net.i2p.i2ptunnel.I2PTunnelHTTPServer.<init>(I2PTunnelHTTPServer.java:276)
at net.i2p.i2ptunnel.I2PTunnel.runHttpServer(I2PTunnel.java:777)
at net.i2p.i2ptunnel.TunnelController.startHttpServer(TunnelController.java:696)
at net.i2p.i2ptunnel.TunnelController.doStartTunnel(TunnelController.java:493)
at net.i2p.i2ptunnel.TunnelController.startTunnel(TunnelController.java:434)
at net.i2p.i2ptunnel.TunnelController$1.run(TunnelController.java:414)
at java.base/java.lang.Thread.run(Thread.java:1583)
at net.i2p.util.I2PThread.run(I2PThread.java:103)
Caused by: java.io.IOException: Invalid entry in Tunnel Filter access list (Bad b32)
at net.i2p.i2ptunnel.access.FileFilterDefinitionElement.update(FileFilterDefinitionElement.java:68)
at net.i2p.i2ptunnel.access.AccessFilter.reload(AccessFilter.java:121)
at net.i2p.i2ptunnel.access.AccessFilter.<init>(AccessFilter.java:80)
at net.i2p.i2ptunnel.access.FilterFactory.createFilter(FilterFactory.java:50)
at net.i2p.i2ptunnel.I2PTunnelServer.createManager(I2PTunnelServer.java:242)
… 9 more
Caused by: net.i2p.i2ptunnel.access.InvalidDefinitionException: Invalid b32
at net.i2p.i2ptunnel.access.FilterDefinitionElement.fromBase32(FilterDefinitionElement.java:37)
at net.i2p.i2ptunnel.access.FileFilterDefinitionElement.update(FileFilterDefinitionElement.java:61)
… 13 more