diff options
Diffstat (limited to 'src/main')
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) { |
