diff options
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/Scan.java | 10 | ||||
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/Scanner.java | 9 |
2 files changed, 4 insertions, 15 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/Scan.java b/src/main/java/com/it_jaros/jscanner/Scan.java index 6800c5a..3db803f 100644 --- a/src/main/java/com/it_jaros/jscanner/Scan.java +++ b/src/main/java/com/it_jaros/jscanner/Scan.java @@ -111,11 +111,13 @@ public class Scan { public void portStart() { this.portCounter.inc(); this.threadCounter.inc(); + this.socketCounter.inc(); } public void portFinish() { this.portCounter.dec(); this.threadCounter.dec(); + this.socketCounter.dec(); } public void hostStart() { @@ -128,14 +130,6 @@ public class Scan { this.hostCounter.dec(); } - public void socketStart() { - this.socketCounter.inc(); - } - - public void socketFinish() { - this.socketCounter.dec(); - } - public void producerStart() { this.threadCounter.inc(); } diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java index 659b62b..95f0507 100644 --- a/src/main/java/com/it_jaros/jscanner/Scanner.java +++ b/src/main/java/com/it_jaros/jscanner/Scanner.java @@ -337,6 +337,7 @@ public class Scanner implements AutoCloseable { @Override public PortResult call() throws Exception { try { + socketLimit.acquire(); scan.portStart(); portScanRateLimiter.apply(); if (cancelled) { @@ -345,6 +346,7 @@ public class Scanner implements AutoCloseable { return checkPort(); } finally { scan.portFinish(); + socketLimit.release(); } } @@ -352,9 +354,6 @@ public class Scanner implements AutoCloseable { PortResult result = new PortResult(); result.setPort(port); result.setState(PortState.UNKNOWN); - - socketLimit.acquire(); - scan.socketStart(); try(SocketChannel socketChannel = SocketChannel.open()) { socketChannel.configureBlocking(false); socketChannel.connect(new InetSocketAddress(host, port)); @@ -391,9 +390,6 @@ public class Scanner implements AutoCloseable { // Will happen a lot when scanning for open ports, so not needed } catch (IOException e) { result.setException(e); - } finally { - scan.socketFinish(); - socketLimit.release(); } return result; @@ -402,7 +398,6 @@ public class Scanner implements AutoCloseable { private String getBanner(Socket socket) { byte[] buffer = new byte[READ_BUFFER_SIZE]; try (InputStream input = socket.getInputStream()) { - socket.setSoTimeout(timeoutInMillis); int bytesRead = input.read(buffer); if (bytesRead <= 0) { return null; |
