From 4b5dbb6b166d61bfd409ca460db1ef7a9bad4b0e Mon Sep 17 00:00:00 2001 From: Matthias Jaros Date: Thu, 13 Aug 2026 20:53:47 +0200 Subject: Wrapped exceptions in PortScanResultAccumulator instead of printing them and messing with cliprinter --- .../jns/scan/engine/PortScanResultAccumulator.java | 15 +++++++-------- .../java/com/it_jaros/jns/scan/engine/ScanHostTask.java | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/main/java/com/it_jaros/jns/scan/engine/PortScanResultAccumulator.java b/src/main/java/com/it_jaros/jns/scan/engine/PortScanResultAccumulator.java index 89238ed..e4dfcd7 100644 --- a/src/main/java/com/it_jaros/jns/scan/engine/PortScanResultAccumulator.java +++ b/src/main/java/com/it_jaros/jns/scan/engine/PortScanResultAccumulator.java @@ -33,14 +33,7 @@ final class PortScanResultAccumulator { } final Exception e = portResult.getException(); if (e != null) { - ScanFailure scanFailure = failureCounts.computeIfAbsent( - e.getClass(), - k -> new ScanFailure( - new ArrayList<>(), - ExceptionInfo.from(e) - ) - ); - scanFailure.ports().add(portResult.getPort()); + recordFailure(e, portResult.getPort()); } } @@ -57,4 +50,10 @@ final class PortScanResultAccumulator { getFailureSummary() ); } + + public void recordFailure(Throwable e, int port) { + failureCounts.computeIfAbsent(e.getClass(), + k -> new ScanFailure(new ArrayList<>(), ExceptionInfo.from(e))) + .ports().add(port); + } } diff --git a/src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java b/src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java index d27cae2..045ba62 100644 --- a/src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java +++ b/src/main/java/com/it_jaros/jns/scan/engine/ScanHostTask.java @@ -76,7 +76,7 @@ public class ScanHostTask implements Callable { if (poll instanceof PollState.Success(PortResult value)) { accumulator.add(value); } else if (poll instanceof PollState.Failure(Throwable error)) { - System.err.printf("scanHostPorts(%s): ScanPortTask() failed with error %s -> %s%n", host, error.getClass().getSimpleName(), error.getMessage()); + accumulator.recordFailure(error, -1); } } catch (InterruptedException ignored) { Thread.currentThread().interrupt(); -- cgit v1.3.1