From 1d7203a6fb5291f088585d06befd65bc9ba43501 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sun, 1 May 2022 14:29:24 +0100 Subject: [PATCH] Bug fixes found when testing previous commits. --- .../arbitrary/ArbitraryDataFileManager.java | 17 +++++++++++++---- .../qortal/network/task/ChannelAcceptTask.java | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java index 2fc883dc..22cf4144 100644 --- a/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java +++ b/src/main/java/org/qortal/controller/arbitrary/ArbitraryDataFileManager.java @@ -1,5 +1,6 @@ package org.qortal.controller.arbitrary; +import com.google.common.net.InetAddresses; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.qortal.arbitrary.ArbitraryDataFile; @@ -20,7 +21,6 @@ import org.qortal.utils.ArbitraryTransactionUtils; import org.qortal.utils.Base58; import org.qortal.utils.NTP; -import java.net.InetSocketAddress; import java.security.SecureRandom; import java.util.*; import java.util.concurrent.ExecutorService; @@ -518,12 +518,21 @@ public class ArbitraryDataFileManager extends Thread { } // Make sure to remove the port, since it isn't guaranteed to match next time - InetSocketAddress address = Peer.parsePeerAddress(peerAddress); - this.recentDataRequests.put(address.getHostString(), now); + String[] parts = peerAddress.split(":"); + if (parts.length == 0) { + return; + } + String host = parts[0]; + if (!InetAddresses.isInetAddress(host)) { + // Invalid host + return; + } + + this.recentDataRequests.put(host, now); } public boolean isPeerRequestingData(String peerAddressWithoutPort) { - return this.recentDataRequests.containsValue(peerAddressWithoutPort); + return this.recentDataRequests.containsKey(peerAddressWithoutPort); } public boolean hasPendingDataRequest() { diff --git a/src/main/java/org/qortal/network/task/ChannelAcceptTask.java b/src/main/java/org/qortal/network/task/ChannelAcceptTask.java index 13ba888c..e455557e 100644 --- a/src/main/java/org/qortal/network/task/ChannelAcceptTask.java +++ b/src/main/java/org/qortal/network/task/ChannelAcceptTask.java @@ -121,6 +121,7 @@ public class ChannelAcceptTask implements Task { newPeer = new Peer(socketChannel); if (isDataPeer) { + newPeer.setIsDataPeer(true); newPeer.setMaxConnectionAge(Settings.getInstance().getMaxDataPeerConnectionTime() * 1000L); } network.addConnectedPeer(newPeer);