From 684506b0be403de9b4e2697d35b9aebff985d42e Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Thu, 25 Mar 2021 08:46:00 -0400 Subject: [PATCH] Transports: Don't open UPnP ports for disabled IPv4/v6 --- router/java/src/net/i2p/router/transport/Transport.java | 5 +++++ .../src/net/i2p/router/transport/TransportManager.java | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/Transport.java b/router/java/src/net/i2p/router/transport/Transport.java index b3f129d25d..4bd26aac6a 100644 --- a/router/java/src/net/i2p/router/transport/Transport.java +++ b/router/java/src/net/i2p/router/transport/Transport.java @@ -196,6 +196,11 @@ public interface Transport { @Deprecated public void recheckReachability(); + /** + * @since 0.9.50 added to interface + */ + public TransportUtil.IPv6Config getIPv6Config(); + public boolean isBacklogged(Hash peer); /** diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java index 84516eccf8..544e863f8b 100644 --- a/router/java/src/net/i2p/router/transport/TransportManager.java +++ b/router/java/src/net/i2p/router/transport/TransportManager.java @@ -797,10 +797,13 @@ public class TransportManager implements TransportEventListener { port = udp.getRequestedPort(); } if (port > 0) { + TransportUtil.IPv6Config config = t.getIPv6Config(); // ipv4 - rv.add(new Port(t.getStyle(), port)); + if (config != TransportUtil.IPv6Config.IPV6_ONLY) + rv.add(new Port(t.getStyle(), port)); // ipv6 - if (_context.getProperty(PROP_ENABLE_UPNP_IPV6, DEFAULT_ENABLE_UPNP_IPV6)) { + if (_context.getProperty(PROP_ENABLE_UPNP_IPV6, DEFAULT_ENABLE_UPNP_IPV6) && + config != TransportUtil.IPv6Config.IPV6_DISABLED) { RouterAddress ra = t.getCurrentAddress(true); if (ra == null) { if (t.getStyle().equals(UDPTransport.STYLE)) { -- GitLab