From f0136a5018c3adba62254711e5abf4da037a3645 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 5 Mar 2022 13:00:17 +0000 Subject: [PATCH] Include the external port when responding ArbitraryDataFileListRequests --- .../arbitrary/ArbitraryDataFileListManager.java | 2 +- src/main/java/org/qortal/network/Network.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java index 82550fc9..36b3f8b6 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileListManager.java @@ -627,7 +627,7 @@ public class ArbitraryDataFileListManager { arbitraryDataFileListRequests.put(message.getId(), newEntry); } - String ourAddress = Network.getInstance().getOurExternalIpAddress(); + String ourAddress = Network.getInstance().getOurExternalIpAddressAndPort(); ArbitraryDataFileListMessage arbitraryDataFileListMessage = new ArbitraryDataFileListMessage(signature, hashes, NTP.getTime(), 0, ourAddress, true); arbitraryDataFileListMessage.setId(message.getId()); diff --git a/src/main/java/org/qortal/network/Network.java b/src/main/java/org/qortal/network/Network.java index 67d53f9f..d349094a 100644 --- a/src/main/java/org/qortal/network/Network.java +++ b/src/main/java/org/qortal/network/Network.java @@ -121,6 +121,7 @@ public class Network { private List ourExternalIpAddressHistory = new ArrayList<>(); private String ourExternalIpAddress = null; + private int ourExternalPort = Settings.getInstance().getListenPort(); // Constructors @@ -1160,6 +1161,7 @@ public class Network { return; } String host = parts[0]; + try { InetAddress addr = InetAddress.getByName(host); if (addr.isAnyLocalAddress() || addr.isSiteLocalAddress()) { @@ -1170,6 +1172,9 @@ public class Network { return; } + // Keep track of the port + this.ourExternalPort = Integer.parseInt(parts[1]); + // Add to the list this.ourExternalIpAddressHistory.add(host); @@ -1232,6 +1237,14 @@ public class Network { return this.ourExternalIpAddress; } + public String getOurExternalIpAddressAndPort() { + String ipAddress = this.getOurExternalIpAddress(); + if (ipAddress == null) { + return null; + } + return String.format("%s:%d", ipAddress, this.ourExternalPort); + } + // Peer-management calls