Fix propagation of external port after guessing

This commit is contained in:
Cameron Gutman
2022-11-06 18:06:18 -06:00
parent 08a8a3043f
commit 6a8486a076

View File

@@ -107,11 +107,12 @@ public class ComputerDetails {
}
if (details.remoteAddress != null) {
this.remoteAddress = details.remoteAddress;
// If the port is unknown, populate it from the external port field
if (this.remoteAddress.port == 0) {
this.remoteAddress.port = externalPort;
}
}
else if (this.remoteAddress != null && details.externalPort != 0) {
// If we have a remote address already (perhaps via STUN) but our updated details
// don't have a new one (because GFE doesn't send one), propagate the external
// port to the current remote address. We may have tried to guess it previously.
this.remoteAddress.port = details.externalPort;
}
if (details.manualAddress != null) {
this.manualAddress = details.manualAddress;