diff options
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/Scanner.java')
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/Scanner.java | 18 |
1 files changed, 12 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 e8cd9e8..2c0a36c 100644 --- a/src/main/java/com/it_jaros/jscanner/Scanner.java +++ b/src/main/java/com/it_jaros/jscanner/Scanner.java @@ -24,19 +24,25 @@ public class Scanner { private final Counter counter = new Counter(); private final ProgressBar progressBar = new ProgressBar(); private final Semaphore socketLimit; + private final boolean disableOnlineCheck; + private final boolean quiet; + private final int maxHostsLimit; + private final int maxWorkersPerHost; private final int timeoutInMillis; private final long delayInNanos; - private final int maxWorkersPerHost; - private final int maxHostsLimit; - private final boolean disableOnlineCheck; - public Scanner(int socketLimit, int timeoutInMillis, int delayInMillis, int maxWorkersPerHost, int maxHostsLimit, boolean disableOnlineCheck) { + public Scanner(int socketLimit, int timeoutInMillis, int delayInMillis, int maxWorkersPerHost, int maxHostsLimit, boolean disableOnlineCheck, boolean quiet) { this.timeoutInMillis = timeoutInMillis; this.delayInNanos = TimeUnit.MILLISECONDS.toNanos(Math.max(0, delayInMillis)); this.socketLimit = new Semaphore(socketLimit); this.maxWorkersPerHost = maxWorkersPerHost; this.maxHostsLimit = maxHostsLimit; this.disableOnlineCheck = disableOnlineCheck; + this.quiet = quiet; + } + + public Scanner(ScanOptions options) { + this(options.openSocketLimit(), options.timeoutInMillis(), options.delayInMillis(), options.maxWorkersPerHost(), options.maxHostsLimit(), options.disableHostCheck(), options.quiet()); } public List<ScanResult> scan(ScanOptions options) { @@ -70,7 +76,7 @@ public class Scanner { public List<ScanResult> scanHosts(Stream<String> hosts, String ports) throws IOException { List<ScanResult> results = new ArrayList<>(); - progressBar.start(); + progressBar.start(quiet); try (ExecutorService executor = Executors.newVirtualThreadPerTaskExecutor()) { CompletionService<ScanResult> completionService = new ExecutorCompletionService<>(executor); Queue<String> hostsInQueue = hosts.collect(Collectors.toCollection(ArrayDeque::new)); @@ -101,7 +107,7 @@ public class Scanner { } } - progressBar.stop(); + progressBar.stop(quiet); System.out.println("--------------------"); System.out.println("Finished scan!"); System.out.println("Stats:"); |
