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
* Debian: Fix link to compiler jar (Debian ticket #986474)
* SSU: IPv6 introducer fixes
2021-04-05 zzz
* Build: Remove launcher code

View File

@@ -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 = 12;
public final static long BUILD = 13;
/** for example "-test" */
public final static String EXTRA = "";

View File

@@ -647,30 +647,30 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
if (hasv6)
continue;
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)) {
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 {
_lastInboundIPv6 = _context.clock().now();
setReachabilityStatus(Status.IPV4_UNKNOWN_IPV6_OK, true);
rebuildExternalAddress(newIP, newPort, false);
}
} 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()) {
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 {
setReachabilityStatus(Status.IPV4_OK_IPV6_UNKNOWN);
rebuildExternalAddress(newIP, newPort, false);