summaryrefslogtreecommitdiff
path: root/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/it_jaros/jscanner/ProgressBar.java32
-rw-r--r--src/main/java/com/it_jaros/jscanner/Scan.java44
2 files changed, 40 insertions, 36 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/ProgressBar.java b/src/main/java/com/it_jaros/jscanner/ProgressBar.java
index 5ce229a..54a729b 100644
--- a/src/main/java/com/it_jaros/jscanner/ProgressBar.java
+++ b/src/main/java/com/it_jaros/jscanner/ProgressBar.java
@@ -141,17 +141,15 @@ public class ProgressBar {
}
private void printStats() {
- long duration = scan.getDurationMillis();
- String durationStr = formatDuration(duration);
-
+ Scan.Statistics stats = scan.getStatistics();
System.err.println("\n--------------------");
System.err.println("Stats:");
- System.err.println("Total hosts: " + scan.getHostTotalCounter().max());
- System.err.println("Total ports: " + scan.portTotal());
- System.err.println("Duration: " + durationStr);
- System.err.println("Peak concurrent hosts: " + scan.getHostCounter().max());
- System.err.println("Peak concurrent sockets: " + scan.getSocketCounter().max());
- System.err.println("Peak concurrent workers: " + scan.getThreadCounter().max());
+ System.err.println("Total hosts: " + stats.hostTotal());
+ System.err.println("Total ports: " + stats.portTotal());
+ System.err.println("Duration: " + formatDuration(stats.durationInMillis()));
+ System.err.println("Peak concurrent hosts: " + stats.hostMaxConcurrent());
+ System.err.println("Peak concurrent sockets: " + stats.socketMaxConcurrent());
+ System.err.println("Peak concurrent workers: " + stats.threadMaxConcurrent());
System.err.println("--------------------\n");
}
@@ -170,9 +168,9 @@ public class ProgressBar {
private void printStatusLine() {
- long duration = scan.getDurationMillis();
- int total = scan.getHostTotalCounter().current();
- int running = scan.getHostCounter().current();
+ Scan.Statistics stats = scan.getStatistics();
+ int total = stats.hostTotal();
+ int running = stats.hostCurrent();
int done = total - running;
long percent = total == 0 ? 100 : done * 100L / total;
@@ -183,17 +181,17 @@ public class ProgressBar {
);
String durationStat = String.format(
" | %s",
- formatDuration(duration)
+ formatDuration(stats.durationInMillis())
);
String socketStat = String.format(
" | sockets: %d active, %d peak",
- scan.getSocketCounter().current(),
- scan.getSocketCounter().max()
+ stats.socketCurrent(),
+ stats.socketMaxConcurrent()
);
String workerStat = String.format(
" | workers: %d active, %d peak",
- scan.getThreadCounter().current(),
- scan.getThreadCounter().max()
+ stats.threadCurrent(),
+ stats.threadMaxConcurrent()
);
int availableWidth = ProgressBar.getColumnWidth();
diff --git a/src/main/java/com/it_jaros/jscanner/Scan.java b/src/main/java/com/it_jaros/jscanner/Scan.java
index dc109c6..9b3bf5e 100644
--- a/src/main/java/com/it_jaros/jscanner/Scan.java
+++ b/src/main/java/com/it_jaros/jscanner/Scan.java
@@ -96,27 +96,11 @@ public class Scan {
onDone.run();
}
- public Counter getThreadCounter() {
- return threadCounter;
- }
-
- public Counter getHostCounter() {
- return hostCounter;
- }
-
- public Counter getSocketCounter() {
- return socketCounter;
- }
-
- public Counter getHostTotalCounter() {
- return hostTotalCounter;
- }
-
public void start() {
start = System.currentTimeMillis();
}
- public long getDurationMillis() {
+ private long getDurationMillis() {
if (stop == 0) {
if (start == 0) {
return 0;
@@ -162,7 +146,29 @@ public class Scan {
this.threadCounter.dec();
}
- public int portTotal() {
- return this.portTotalCounter.current();
+ public Statistics getStatistics() {
+ return new Statistics(
+ this.getDurationMillis(),
+ this.hostTotalCounter.current(),
+ this.hostCounter.current(),
+ this.hostCounter.max(),
+ this.portTotalCounter.current(),
+ this.threadCounter.current(),
+ this.threadCounter.max(),
+ this.socketCounter.current(),
+ this.socketCounter.max()
+ );
}
+
+ public record Statistics(
+ long durationInMillis,
+ int hostTotal,
+ int hostCurrent,
+ int hostMaxConcurrent,
+ int portTotal,
+ int threadCurrent,
+ int threadMaxConcurrent,
+ int socketCurrent,
+ int socketMaxConcurrent
+ ) {}
}