diff --git a/src/main/java/org/qortal/network/RNSPeer.java b/src/main/java/org/qortal/network/RNSPeer.java index 399775db..c0ce575a 100644 --- a/src/main/java/org/qortal/network/RNSPeer.java +++ b/src/main/java/org/qortal/network/RNSPeer.java @@ -230,14 +230,21 @@ public class RNSPeer { /** Utility methods */ public void pingRemote() { var link = this.peerLink; - log.info("pinging remote: {}", link); - var data = "ping".getBytes(UTF_8); - link.setPacketCallback(this::linkPacketReceived); - Packet pingPacket = new Packet(link, data); - PacketReceipt packetReceipt = pingPacket.send(); - //packetReceipt.setTimeout(3L); - packetReceipt.setTimeoutCallback(this::packetTimedOut); - packetReceipt.setDeliveryCallback(this::packetDelivered); + if (nonNull(link)) { + if (peerLink.getStatus() == ACTIVE) { + log.info("pinging remote: {}", link); + var data = "ping".getBytes(UTF_8); + link.setPacketCallback(this::linkPacketReceived); + Packet pingPacket = new Packet(link, data); + PacketReceipt packetReceipt = pingPacket.send(); + //packetReceipt.setTimeout(3L); + packetReceipt.setTimeoutCallback(this::packetTimedOut); + packetReceipt.setDeliveryCallback(this::packetDelivered); + } else { + log.info("can't send ping to a peer {} with (link) status: {}", + Hex.encodeHexString(peerLink.getDestination().getHash()), peerLink.getStatus()); + } + } } //public void shutdownLink(Link link) {