diff options
3 files changed, 7 insertions, 5 deletions
diff --git a/src/main/java/com/it_jaros/networkScanner/Progress.java b/src/main/java/com/it_jaros/networkScanner/Progress.java index 37a562b..521046d 100644 --- a/src/main/java/com/it_jaros/networkScanner/Progress.java +++ b/src/main/java/com/it_jaros/networkScanner/Progress.java @@ -2,4 +2,4 @@ package com.it_jaros.networkScanner; import java.util.concurrent.atomic.AtomicInteger; -record Progress(String host, int total, AtomicInteger done, AtomicInteger open) {}
\ No newline at end of file +public record Progress(String host, int total, AtomicInteger done, AtomicInteger open) {}
\ No newline at end of file diff --git a/src/main/java/com/it_jaros/networkScanner/ProgressBar.java b/src/main/java/com/it_jaros/networkScanner/ProgressBar.java index 2537d9f..ca755a6 100644 --- a/src/main/java/com/it_jaros/networkScanner/ProgressBar.java +++ b/src/main/java/com/it_jaros/networkScanner/ProgressBar.java @@ -9,9 +9,10 @@ import java.util.concurrent.locks.ReentrantLock; public class ProgressBar { - private ScheduledExecutorService ui = Executors.newSingleThreadScheduledExecutor(); + private final ScheduledExecutorService ui = Executors.newSingleThreadScheduledExecutor(); + private final ReentrantLock lock = new ReentrantLock(); + private List<Progress> hosts; - private ReentrantLock lock = new ReentrantLock(); public void start() { this.hosts = new ArrayList<>(); @@ -68,6 +69,7 @@ public class ProgressBar { // we need to draw one last time for the 100% to appear drawProgress(true); } catch (InterruptedException ignored) { + Thread.currentThread().interrupt(); } } } diff --git a/src/main/java/com/it_jaros/networkScanner/Scanner.java b/src/main/java/com/it_jaros/networkScanner/Scanner.java index 6aab60b..e3f90f1 100644 --- a/src/main/java/com/it_jaros/networkScanner/Scanner.java +++ b/src/main/java/com/it_jaros/networkScanner/Scanner.java @@ -41,7 +41,7 @@ public class Scanner { public List<ScanResult> scanTargets(List<String> targets, String ports) { List<ScanResult> results = new ArrayList<>(); progressBar.start(); - try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();) { + try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) { List<Future<ScanResult>> futures = new ArrayList<>(); for (String target : targets) { futures.add(executor.submit(() -> scanTarget(target, ports))); @@ -72,7 +72,7 @@ public class Scanner { Progress progress = new Progress(target, portRange.getTotal(), new AtomicInteger(), new AtomicInteger()); progressBar.submit(progress); - try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor();) { + try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) { List<Future<Integer>> futures = new ArrayList<>(); while (portRange.hasNext()) { maxWorkers.acquireUninterruptibly(); |
