From 09bf47cf701a5a5190c5f4724457c65de300160b Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Sat, 22 Aug 2026 08:35:51 +0200 Subject: Do not allocate byte array in case there is no data --- src/main/java/com/it_jaros/jns/scan/engine/ScanPortTask.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/main') diff --git a/src/main/java/com/it_jaros/jns/scan/engine/ScanPortTask.java b/src/main/java/com/it_jaros/jns/scan/engine/ScanPortTask.java index e9244c2..dc5851e 100644 --- a/src/main/java/com/it_jaros/jns/scan/engine/ScanPortTask.java +++ b/src/main/java/com/it_jaros/jns/scan/engine/ScanPortTask.java @@ -11,6 +11,7 @@ import java.net.InetAddress; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.SocketChannel; +import java.util.Optional; import java.util.concurrent.Callable; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; @@ -64,7 +65,7 @@ public class ScanPortTask implements Callable { PortState state = getPortState(socketChannel); result.setState(state); if (PortState.OPEN.equals(state) && bannerRecognition) { - result.setBanner(getBanner(socketChannel)); + getBanner(socketChannel).ifPresent(result::setBanner); } } catch (ConnectException ignored) { result.setState(PortState.CLOSED); @@ -101,14 +102,14 @@ public class ScanPortTask implements Callable { return PortState.FILTERED; } - private byte[] getBanner(SocketChannel socketChannel) { + private Optional getBanner(SocketChannel socketChannel) { try { - return tryReadFrom(socketChannel); + return Optional.of(tryReadFrom(socketChannel)); } catch (IOException ignore) { // ignore } - return new byte[0]; + return Optional.empty(); } private byte[] tryReadFrom(SocketChannel socketChannel) throws IOException { -- cgit v1.3.1