From 08f8b980b6c2ed8e8cf284e74230c0adf78b0e64 Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Sun, 5 Jul 2026 07:06:26 +0200 Subject: Cleanup --- src/main/java/com/it_jaros/jscanner/Scanner.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java index 192f81a..ae02d3d 100644 --- a/src/main/java/com/it_jaros/jscanner/Scanner.java +++ b/src/main/java/com/it_jaros/jscanner/Scanner.java @@ -70,7 +70,6 @@ public class Scanner implements AutoCloseable { maxHostsLimit, host -> () -> scanHostPorts(host, scan) ); - CompletionService completionService = state.completionService(); // the main thread is the consumer // Let the consumer run as long as @@ -80,7 +79,7 @@ public class Scanner implements AutoCloseable { while ((state.running().get() && !cancelled) || state.inPipeline().get() > 0) { try { // let's check for results and give add them to our scan data holder object - Future finishedHost = completionService.poll(10, TimeUnit.MILLISECONDS); + Future finishedHost = state.completionService().poll(10, TimeUnit.MILLISECONDS); if (finishedHost == null) { continue; } @@ -107,6 +106,12 @@ public class Scanner implements AutoCloseable { return scan.getResults(); } + /** + * Scans the ports of a given host + * @param host + * @param scan + * @return + */ private ScanResult scanHostPorts(final String host, final Scan scan) { PortRange portRange = new PortRange(scan.getPorts()); BitSet openPorts = new BitSet(PortRange.MAX_PORT); @@ -134,13 +139,11 @@ public class Scanner implements AutoCloseable { return checkPort(host, port, scan); } ); - CompletionService completionService = state.completionService(); - // consumer is the main thread while ((state.running().get() && !cancelled) || state.inPipeline().get() > 0) { try { - Future portResultFuture = completionService.poll(10, TimeUnit.MILLISECONDS); + Future portResultFuture = state.completionService().poll(10, TimeUnit.MILLISECONDS); if (portResultFuture == null) { continue; } @@ -194,7 +197,7 @@ public class Scanner implements AutoCloseable { * @param * @return */ - private ProducerState startProducer(Iterator queue, int maxWorkers, Function> taskFactory) { + private ProducerState startProducer(Iterator queue, int maxWorkers, Function> taskFactory) { final AtomicInteger inPipeline = new AtomicInteger(0); final AtomicBoolean running = new AtomicBoolean(true); final Semaphore activeWorkers = new Semaphore(maxWorkers); -- cgit v1.3.1