From 4936f0821289bbbd7eed786b7e6a0d33f18b08ae Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 30 Jan 2015 17:26:45 +0000 Subject: [PATCH] Console: Don't display invalid IPv6 addresses as options on /confignet --- .../java/src/net/i2p/router/web/ConfigNetHelper.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java index 7f13242d3d..c008449b11 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/ConfigNetHelper.java @@ -2,6 +2,7 @@ package net.i2p.router.web; import java.util.Collections; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; import net.i2p.data.DataHelper; @@ -185,6 +186,12 @@ public class ConfigNetHelper extends HelperBase { /** @since IPv6 */ public String getAddressSelector() { Set<String> addrs = getAddresses(); + // isPubliclyRoutable() rejects some IPv6 addresses that getAddresses() allows + for (Iterator<String> iter = addrs.iterator(); iter.hasNext(); ) { + byte[] ip = Addresses.getIP(iter.next()); + if (ip == null || !TransportUtil.isPubliclyRoutable(ip, true)) + iter.remove(); + } Set<String> configs; String cs = getUdphostname(); if (cs.length() <= 0) { -- GitLab