summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/jscanner/Scanner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/Scanner.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/Scanner.java34
1 files changed, 5 insertions, 29 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java
index 5277327..9f5ac52 100644
--- a/src/main/java/com/it_jaros/jscanner/Scanner.java
+++ b/src/main/java/com/it_jaros/jscanner/Scanner.java
@@ -3,9 +3,6 @@ package com.it_jaros.jscanner;
import java.io.IOException;
import java.io.InputStream;
import java.net.*;
-import java.nio.channels.SelectionKey;
-import java.nio.channels.Selector;
-import java.nio.channels.SocketChannel;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.*;
@@ -350,32 +347,11 @@ public class Scanner implements AutoCloseable {
socketLimit.acquire();
scan.socketStart();
- try(
- SocketChannel socketChannel = SocketChannel.open();
- Selector isOpen = Selector.open()
- ) {
- socketChannel.configureBlocking(false);
- SelectionKey isOpenKey = socketChannel.register(isOpen, SelectionKey.OP_CONNECT);
- socketChannel.connect(new InetSocketAddress(host, port));
- long deadlineNanos = System.nanoTime() + TimeUnit.MILLISECONDS.toNanos(timeoutInMillis);
- long waitInMillis = Math.min(timeoutInMillis, 5);
- while (isOpenKey.isValid() && !isOpenKey.isConnectable()) {
- if (isOpen.select(waitInMillis) == 1) {
- if (socketChannel.finishConnect()) {
- result.setState(PortState.OPEN);
- //if (bannerRecognition) {
- // result.setBanner(getBanner(socket));
- //}
- } else {
- result.setState(PortState.FILTERED);
- }
- break;
- }
-
- if (deadlineNanos - System.nanoTime() < 0) {
- result.setState(PortState.FILTERED);
- break;
- }
+ try (Socket socket = new Socket()) {
+ socket.connect(new InetSocketAddress(host, port), timeoutInMillis);
+ result.setState(PortState.OPEN);
+ if (bannerRecognition) {
+ result.setBanner(getBanner(socket));
}
} catch (SocketTimeoutException ignored) {
result.setState(PortState.FILTERED);