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) { if (details.remoteAddress != null) {
this.remoteAddress = details.remoteAddress; this.remoteAddress = details.remoteAddress;
}
// If the port is unknown, populate it from the external port field else if (this.remoteAddress != null && details.externalPort != 0) {
if (this.remoteAddress.port == 0) { // If we have a remote address already (perhaps via STUN) but our updated details
this.remoteAddress.port = externalPort; // 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) { if (details.manualAddress != null) {
this.manualAddress = details.manualAddress; this.manualAddress = details.manualAddress;