From 0f3abf0c9ef44305bb65b84e71fbe3a78f5f4432 Mon Sep 17 00:00:00 2001
From: zzz <zzz@i2pmail.org>
Date: Sun, 24 Apr 2022 10:23:33 -0400
Subject: [PATCH] SSU: Publish empty IPv6 address when missing introducers

---
 .../router/transport/udp/UDPTransport.java    | 32 ++++++++-----------
 1 file changed, 14 insertions(+), 18 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 ee5b2cf6c6..625475f051 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -2888,24 +2888,20 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
                 RouterAddress local = new RouterAddress(STYLE, localOpts, DEFAULT_COST);
                 replaceCurrentExternalAddress(local, isIPv6);
             }
-            if (!isIPv6) {
-                // Make an empty "4" address
-                OrderedProperties opts = new OrderedProperties(); 
-                opts.setProperty(UDPAddress.PROP_CAPACITY, CAP_IPV4);
-                if (_enableSSU2)
-                    addSSU2Options(opts);
-                RouterAddress addr4 = new RouterAddress(STYLE, opts, SSU_OUTBOUND_COST);
-                RouterAddress current = getCurrentAddress(false);
-                boolean wantsRebuild = !addr4.deepEquals(current);
-                if (!wantsRebuild)
-                    return null;
-                replaceAddress(addr4);
-                if (allowRebuildRouterInfo)
-                    rebuildRouterInfo();
-                return addr4;
-            }
-            removeExternalAddress(isIPv6, allowRebuildRouterInfo);
-            return null;
+            // Make an empty "4" or "6" address
+            OrderedProperties opts = new OrderedProperties(); 
+            opts.setProperty(UDPAddress.PROP_CAPACITY, isIPv6 ? CAP_IPV6 : CAP_IPV4);
+            if (_enableSSU2)
+                addSSU2Options(opts);
+            RouterAddress addr = new RouterAddress(STYLE, opts, SSU_OUTBOUND_COST);
+            RouterAddress current = getCurrentAddress(isIPv6);
+            boolean wantsRebuild = !addr.deepEquals(current);
+            if (!wantsRebuild)
+                return null;
+            replaceAddress(addr);
+            if (allowRebuildRouterInfo)
+                rebuildRouterInfo();
+            return addr;
         }
     }
 
-- 
GitLab