From bd6d6426fd5d67c4387fa1e9dba1e1888988095e Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Tue, 23 Mar 2021 08:14:17 -0400 Subject: [PATCH] SSU: Try to fix IPv6 transition from firewalled to non-firewalled state was right but published address wasn't updated because looking in wrong place for saved ipv6 address --- .../i2p/router/transport/udp/UDPTransport.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index aa21454fd8..96c738a0e9 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -3361,11 +3361,19 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority removeExternalAddress(true, true); } else if (STATUS_IPV6_FW_2.contains(old) && STATUS_IPV6_OK.contains(status) && - _lastOurIPv6 != null && !explicitAddressSpecified()){ - String addr = Addresses.toString(_lastOurIPv6); - int port = _context.getProperty(PROP_EXTERNAL_PORT, -1); - rebuildExternalAddress(addr, port, true); + RouterAddress ra = _currentOurV6Address; + if (ra != null) { + String addr = ra.getHost(); + if (addr != null) { + int port = _context.getProperty(PROP_EXTERNAL_PORT, -1); + rebuildExternalAddress(addr, port, true); + } else if (_log.shouldWarn()) { + _log.warn("Not IPv6 firewalled but no address?"); + } + } else if (_log.shouldWarn()) { + _log.warn("Not IPv6 firewalled but no address?"); + } } } else { rebuildExternalAddress(); -- GitLab