summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/jscanner/Scanner.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/it_jaros/jscanner/Scanner.java')
-rw-r--r--src/main/java/com/it_jaros/jscanner/Scanner.java11
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