diff options
| -rw-r--r-- | src/main/java/com/it_jaros/jns/scan/engine/ScanPortTask.java | 9 |
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 { |
