diff options
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/Scanner.java')
| -rw-r--r-- | src/main/java/com/it_jaros/jscanner/Scanner.java | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/main/java/com/it_jaros/jscanner/Scanner.java b/src/main/java/com/it_jaros/jscanner/Scanner.java index 40c2e23..3e655a5 100644 --- a/src/main/java/com/it_jaros/jscanner/Scanner.java +++ b/src/main/java/com/it_jaros/jscanner/Scanner.java @@ -10,6 +10,7 @@ import java.util.concurrent.*; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; +import java.util.function.Consumer; import java.util.function.Function; public class Scanner implements AutoCloseable { @@ -54,9 +55,8 @@ public class Scanner implements AutoCloseable { * Starts a given scan. * * @param scan - * @return */ - public List<ScanResult> runScan(final Scan scan) { + public void runScan(final Scan scan, final Consumer<ScanResult> consumer) { if (scan == null) { throw new IllegalArgumentException("Scan argument cannot be null"); } @@ -88,9 +88,8 @@ public class Scanner implements AutoCloseable { // No matter what happens we have to free the resources after getting ScanResult try { ScanResult result = finishedHost.get(); - // we only want results that give value and not cost RAM for nothing - if (!result.openPorts().isEmpty() || !result.filteredPorts().isEmpty()) { - scan.addScanResult(result); + if (result != null) { + consumer.accept(result); } } finally { state.activeWorkers().release(); @@ -104,7 +103,6 @@ public class Scanner implements AutoCloseable { } scan.stop(); - return scan.getResults(); } /** @@ -155,6 +153,7 @@ public class Scanner implements AutoCloseable { try { PortResult portResult = portResultFuture.get(); + if (portResult == null) continue; switch (portResult.getState()) { case OPEN -> { // bitset is not thread-safe, so it is set |
