summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-08-06 18:27:27 +0200
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-08-06 18:27:27 +0200
commit32fd7deeb0836fd519c13a3a68dc163f6675abd1 (patch)
tree7d6f4a1af24f170b4661ac9fee4e48b93eb7418d
parent86a1e862dcad66b3cc206604bbc04a5c6a043d9e (diff)
Replaced PortTotalCounters with Total counters inside the Counter class
-rw-r--r--src/main/java/com/it_jaros/jscanner/Counter.java6
-rw-r--r--src/main/java/com/it_jaros/jscanner/ProgressBar.java7
-rw-r--r--src/main/java/com/it_jaros/jscanner/Scan.java16
-rw-r--r--src/main/java/com/it_jaros/jscanner/Scanner.java1
4 files changed, 20 insertions, 10 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/Counter.java b/src/main/java/com/it_jaros/jscanner/Counter.java
index a62bee7..af7966a 100644
--- a/src/main/java/com/it_jaros/jscanner/Counter.java
+++ b/src/main/java/com/it_jaros/jscanner/Counter.java
@@ -5,8 +5,10 @@ import java.util.concurrent.atomic.AtomicInteger;
public final class Counter {
private final AtomicInteger current = new AtomicInteger(0);
private final AtomicInteger max = new AtomicInteger(0);
+ private final AtomicInteger total = new AtomicInteger(0);
public void inc() {
+ total.incrementAndGet();
int now = current.incrementAndGet();
max.accumulateAndGet(now, Math::max);
}
@@ -22,4 +24,8 @@ public final class Counter {
public int max() {
return max.get();
}
+
+ public int total() {
+ return total.get();
+ }
}
diff --git a/src/main/java/com/it_jaros/jscanner/ProgressBar.java b/src/main/java/com/it_jaros/jscanner/ProgressBar.java
index 22f0907..08ec068 100644
--- a/src/main/java/com/it_jaros/jscanner/ProgressBar.java
+++ b/src/main/java/com/it_jaros/jscanner/ProgressBar.java
@@ -180,6 +180,11 @@ public class ProgressBar {
running,
done
);
+ String portStat = String.format(
+ " | ports: %d running, %d done",
+ stats.portCurrent(),
+ stats.portTotal()
+ );
String durationStat = String.format(
" | %s",
formatDuration(stats.durationInMillis())
@@ -196,7 +201,7 @@ public class ProgressBar {
);
int availableWidth = ProgressBar.getColumnWidth();
- String statusLine = appendIfEnoughSpace("", availableWidth, hostStat, durationStat, socketStat, workerStat);
+ String statusLine = appendIfEnoughSpace("", availableWidth, hostStat, portStat, durationStat, socketStat, workerStat);
String barFormat = " [%s] %3d%%";
int remainingWidth = availableWidth - statusLine.length() - barFormat.length();
diff --git a/src/main/java/com/it_jaros/jscanner/Scan.java b/src/main/java/com/it_jaros/jscanner/Scan.java
index 9b3bf5e..6800c5a 100644
--- a/src/main/java/com/it_jaros/jscanner/Scan.java
+++ b/src/main/java/com/it_jaros/jscanner/Scan.java
@@ -16,8 +16,7 @@ public class Scan {
private final String ports;
private final Runnable onDone;
private final Counter hostCounter;
- private final Counter hostTotalCounter;
- private final Counter portTotalCounter;
+ private final Counter portCounter;
private final Counter socketCounter;
private final Counter threadCounter;
private long start = 0;
@@ -32,8 +31,7 @@ public class Scan {
this.ports = ports;
this.onDone = onDone;
this.hostCounter = new Counter();
- this.hostTotalCounter = new Counter();
- this.portTotalCounter = new Counter();
+ this.portCounter = new Counter();
this.socketCounter = new Counter();
this.threadCounter = new Counter();
}
@@ -111,17 +109,17 @@ public class Scan {
}
public void portStart() {
- this.portTotalCounter.inc();
+ this.portCounter.inc();
this.threadCounter.inc();
}
public void portFinish() {
+ this.portCounter.dec();
this.threadCounter.dec();
}
public void hostStart() {
this.hostCounter.inc();
- this.hostTotalCounter.inc();
this.threadCounter.inc();
}
@@ -149,10 +147,11 @@ public class Scan {
public Statistics getStatistics() {
return new Statistics(
this.getDurationMillis(),
- this.hostTotalCounter.current(),
+ this.hostCounter.total(),
this.hostCounter.current(),
this.hostCounter.max(),
- this.portTotalCounter.current(),
+ this.portCounter.total(),
+ this.portCounter.current(),
this.threadCounter.current(),
this.threadCounter.max(),
this.socketCounter.current(),
@@ -166,6 +165,7 @@ public class Scan {
int hostCurrent,
int hostMaxConcurrent,
int portTotal,
+ int portCurrent,
int threadCurrent,
int threadMaxConcurrent,
int socketCurrent,
diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java
index 35bea6d..b83029a 100644
--- a/src/main/java/com/it_jaros/jscanner/Scanner.java
+++ b/src/main/java/com/it_jaros/jscanner/Scanner.java
@@ -381,7 +381,6 @@ public class Scanner implements AutoCloseable {
} else {
result.setState(PortState.FILTERED);
}
-
} catch (SocketTimeoutException ignored) {
result.setState(PortState.FILTERED);
} catch (ConnectException ignored) {