SSU: Call replaceCurrentExternalAddress() from startup()

for local interfaces even when not force-firewalled, because REA2()
now needs them to set the IPs regardless
This commit is contained in:
zzz
2021-04-20 07:33:08 -04:00
parent 58bae9f1bd
commit 5af19314db
3 changed files with 35 additions and 15 deletions

View File

@@ -1,5 +1,25 @@
2021-04-20 zzz
* SSU: Fix setting addresses from interfaces at startup
2021-04-18 zzz
* Proxy: Decode IDN hostnames in error pages
2021-04-17 zzz
* Transport: IPv6 state transition fixes
2021-04-12 zzz
* SSU: Fix peer test getting stuck
2021-04-11 zzz
* Proxy: Precompress error page CSS
* SSU: IPv6-only fixes
2021-04-09 zzz
* Router: Fixes for setting up config dir in embedded applications
2021-04-08 zzz 2021-04-08 zzz
* Debian: Fix link to compiler jar (Debian ticket #986474) * Debian: Fix link to compiler jar (Debian ticket #986474)
* SSU: IPv6 introducer fixes
2021-04-05 zzz 2021-04-05 zzz
* Build: Remove launcher code * Build: Remove launcher code

View File

@@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */ /** deprecated */
public final static String ID = "Git"; public final static String ID = "Git";
public final static String VERSION = CoreVersion.VERSION; public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 12; public final static long BUILD = 13;
/** for example "-test" */ /** for example "-test" */
public final static String EXTRA = ""; public final static String EXTRA = "";

View File

@@ -647,30 +647,30 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
if (hasv6) if (hasv6)
continue; continue;
hasv6 = true; hasv6 = true;
// save the external address but don't publish it
// save it where UPnP can get it and try to forward it
OrderedProperties localOpts = new OrderedProperties();
localOpts.setProperty(UDPAddress.PROP_PORT, String.valueOf(newPort));
localOpts.setProperty(UDPAddress.PROP_HOST, newIP);
RouterAddress local = new RouterAddress(STYLE, localOpts, DEFAULT_COST);
replaceCurrentExternalAddress(local, true);
if (isIPv6Firewalled() || _context.getBooleanProperty(PROP_IPV6_FIREWALLED)) { if (isIPv6Firewalled() || _context.getBooleanProperty(PROP_IPV6_FIREWALLED)) {
setReachabilityStatus(Status.IPV4_UNKNOWN_IPV6_FIREWALLED, true); setReachabilityStatus(Status.IPV4_UNKNOWN_IPV6_FIREWALLED, true);
// save the external address but don't publish it
// save it where UPnP can get it and try to forward it
OrderedProperties localOpts = new OrderedProperties();
localOpts.setProperty(UDPAddress.PROP_PORT, String.valueOf(newPort));
localOpts.setProperty(UDPAddress.PROP_HOST, newIP);
RouterAddress local = new RouterAddress(STYLE, localOpts, DEFAULT_COST);
replaceCurrentExternalAddress(local, true);
} else { } else {
_lastInboundIPv6 = _context.clock().now(); _lastInboundIPv6 = _context.clock().now();
setReachabilityStatus(Status.IPV4_UNKNOWN_IPV6_OK, true); setReachabilityStatus(Status.IPV4_UNKNOWN_IPV6_OK, true);
rebuildExternalAddress(newIP, newPort, false); rebuildExternalAddress(newIP, newPort, false);
} }
} else { } else {
// save the external address but don't publish it
// save it where UPnP can get it and try to forward it
OrderedProperties localOpts = new OrderedProperties();
localOpts.setProperty(UDPAddress.PROP_PORT, String.valueOf(newPort));
localOpts.setProperty(UDPAddress.PROP_HOST, newIP);
RouterAddress local = new RouterAddress(STYLE, localOpts, DEFAULT_COST);
replaceCurrentExternalAddress(local, false);
if (isIPv4Firewalled()) { if (isIPv4Firewalled()) {
setReachabilityStatus(Status.IPV4_FIREWALLED_IPV6_UNKNOWN); setReachabilityStatus(Status.IPV4_FIREWALLED_IPV6_UNKNOWN);
// save the external address but don't publish it
// save it where UPnP can get it and try to forward it
OrderedProperties localOpts = new OrderedProperties();
localOpts.setProperty(UDPAddress.PROP_PORT, String.valueOf(newPort));
localOpts.setProperty(UDPAddress.PROP_HOST, newIP);
RouterAddress local = new RouterAddress(STYLE, localOpts, DEFAULT_COST);
replaceCurrentExternalAddress(local, false);
} else { } else {
setReachabilityStatus(Status.IPV4_OK_IPV6_UNKNOWN); setReachabilityStatus(Status.IPV4_OK_IPV6_UNKNOWN);
rebuildExternalAddress(newIP, newPort, false); rebuildExternalAddress(newIP, newPort, false);