summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-08-22 08:35:51 +0200
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-08-22 08:35:51 +0200
commit09bf47cf701a5a5190c5f4724457c65de300160b (patch)
treec170ae9a2cbe70e5a1769b176bd3410de35feb5b /src/main/java
parent3ed7236834fcca049c7723f1401aa5dfa59ec285 (diff)
Do not allocate byte array in case there is no data
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/it_jaros/jns/scan/engine/ScanPortTask.java9
1 files changed, 5 insertions, 4 deletions
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<PortResult> {
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<PortResult> {
return PortState.FILTERED;
}
- private byte[] getBanner(SocketChannel socketChannel) {
+ private Optional<byte[]> 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 {