diff --git a/history.txt b/history.txt index 109264f19..09fca3269 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,26 @@ +2021-03-02 zzz + * UPnP: + - Limit event subscription time + - Subscribe to IPv6 service also + +2021-03-01 zzz + * UPnP: + - Fix mappings not being renewed before expiration + - IPv6 port forwarding fixes + - Continue to forward deprecated addresses for a while + +2021-02-28 zzz + * SSU: Fix set of states requiring address confirmation + * UPnP: + - Add support for IPv6 firewall addresses + - Add support for forwarding IPv6 addresses + +2021-02-27 zzz + * UPnP: Move IPv6 checks from Parser to ControlPoint + 2021-02-25 zzz + * NetDB: Fix NPE validating expired blinded LS2 + * NTCP: Don't publish IP at startup when configured as firewalled * SSU: Enable RelayRequest over IPv6 * Transports: Adjust conn limits for some platforms diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 2d30a2c12..35ab2b80b 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Git"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 3; + public final static long BUILD = 4; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java index 403ae74cf..fa44aa304 100644 --- a/router/java/src/net/i2p/router/transport/TransportManager.java +++ b/router/java/src/net/i2p/router/transport/TransportManager.java @@ -87,8 +87,8 @@ public class TransportManager implements TransportEventListener { public final static String PROP_ENABLE_NTCP = "i2np.ntcp.enable"; /** default true */ public final static String PROP_ENABLE_UPNP = "i2np.upnp.enable"; - /** default false for now */ public final static String PROP_ENABLE_UPNP_IPV6 = "i2np.upnp.ipv6.enable"; + public static final boolean DEFAULT_ENABLE_UPNP_IPV6 = true; private static final String PROP_JAVA_PROXY1 = "socksProxyHost"; private static final String PROP_JAVA_PROXY2 = "java.net.useSystemProxies"; private static final String PROP_JAVA_PROXY3 = "http.proxyHost"; @@ -813,7 +813,7 @@ public class TransportManager implements TransportEventListener { // ipv4 rv.add(new Port(t.getStyle(), port)); // ipv6 - if (_context.getBooleanProperty(PROP_ENABLE_UPNP_IPV6)) { + if (_context.getProperty(PROP_ENABLE_UPNP_IPV6, DEFAULT_ENABLE_UPNP_IPV6)) { RouterAddress ra = t.getCurrentAddress(true); if (ra == null) { if (t.getStyle().equals(UDPTransport.STYLE)) { diff --git a/router/java/src/net/i2p/router/transport/UPnPManager.java b/router/java/src/net/i2p/router/transport/UPnPManager.java index 3d82cfc53..c3d662cc1 100644 --- a/router/java/src/net/i2p/router/transport/UPnPManager.java +++ b/router/java/src/net/i2p/router/transport/UPnPManager.java @@ -71,9 +71,10 @@ class UPnPManager { _context = context; _manager = manager; _log = _context.logManager().getLog(UPnPManager.class); - // UPnP wants to bind to IPv6 link local interfaces by default, but what UPnP router - // is going to want to talk IPv6 anyway? Just make it easy and force IPv4 only - org.cybergarage.upnp.UPnP.setEnable(org.cybergarage.upnp.UPnP.USE_ONLY_IPV4_ADDR); + // this controls what sockets UPnP listens on + // not clear it makes any practical difference though + if (!context.getProperty(TransportManager.PROP_ENABLE_UPNP_IPV6, TransportManager.DEFAULT_ENABLE_UPNP_IPV6)) + org.cybergarage.upnp.UPnP.setEnable(org.cybergarage.upnp.UPnP.USE_ONLY_IPV4_ADDR); // set up logging in the UPnP package Debug.initialize(context); int ssdpPort = _context.getProperty(PROP_SSDP_PORT, DEFAULT_SSDP_PORT); @@ -189,7 +190,7 @@ class UPnPManager { if (_scannerCallback != null) _scannerCallback.beforeScan(); if (_log.shouldLog(Log.DEBUG)) - _log.debug("UPnP Rescan"); + _log.debug("UPnP Rescan", new Exception()); // TODO default search MX (jitter) is 3 seconds... reduce? // See also: // Adaptive Jitter Control for UPnP M-Search