summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/networkScanner/Scanner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/it_jaros/networkScanner/Scanner.java')
-rw-r--r--src/main/java/com/it_jaros/networkScanner/Scanner.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/com/it_jaros/networkScanner/Scanner.java b/src/main/java/com/it_jaros/networkScanner/Scanner.java
index d219307..a013296 100644
--- a/src/main/java/com/it_jaros/networkScanner/Scanner.java
+++ b/src/main/java/com/it_jaros/networkScanner/Scanner.java
@@ -25,11 +25,13 @@ public class Scanner {
private final Semaphore socketLimit;
private final int timeoutInMillis;
private final long delayInNanos;
+ private final int maxWorkersPerHost;
- public Scanner(int socketLimit, int timeoutInMillis, int delayInMillis) {
+ public Scanner(int socketLimit, int timeoutInMillis, int delayInMillis, int maxWorkersPerHost) {
this.timeoutInMillis = timeoutInMillis;
this.delayInNanos = TimeUnit.MILLISECONDS.toNanos(Math.max(0, delayInMillis));
this.socketLimit = new Semaphore(socketLimit);
+ this.maxWorkersPerHost = maxWorkersPerHost;
}
public List<ScanResult> scan(ScanOptions target) {
@@ -64,7 +66,7 @@ public class Scanner {
private ScanResult scanTarget(String target, String ports) {
PortRange portRange = new PortRange(ports);
AtomicLong portSlotFactory = new AtomicLong(System.nanoTime());
- Semaphore maxWorkers = new Semaphore(1000);
+ Semaphore maxWorkers = new Semaphore(maxWorkersPerHost);
BitSet openPorts = new BitSet(PortRange.MAX_PORT);
Progress progress = new Progress(target, portRange.getTotal(), new AtomicInteger(), new AtomicInteger());