]> git.ipfire.org Git - dbl.git/commitdiff
checker: Allow passing some domains for manual checking
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 8 Jan 2026 10:26:49 +0000 (10:26 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 8 Jan 2026 10:26:49 +0000 (10:26 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/dnsbl/checker.py
src/scripts/dnsbl.in

index 441a39206a723932b76c568650a4eccdb584ea8f..ff0bc8ab47e15a8c04b6130cac15fc5261a8a597 100644 (file)
@@ -47,21 +47,28 @@ class Checker(object):
 
                self.results = {}
 
-       def check(self, batch_size=1024):
+       def check(self, *domains, batch_size=1024):
                """
                        Checks all domains that need checking.
                """
                threshold = 64
 
                with self.executor:
-                       while True:
-                               # Submit some more tasks whenever we run low
-                               if len(self.results) < threshold:
-                                       for domain in self.get_domains(batch_size):
-                                               self.submit(domain)
+                       # Submit any passed domains
+                       for domain in domains:
+                               self.submit(domain)
 
-                                       # Manually commit after a batch has been processed
-                                       self.backend.db.commit()
+                       # Main Loop
+                       while True:
+                               # Submit some more domains for checking unless we have been given
+                               # some by the caller.
+                               if not domains:
+                                       if len(self.results) < threshold:
+                                               for domain in self.get_domains(batch_size):
+                                                       self.submit(domain)
+
+                                               # Manually commit after a batch has been processed
+                                               self.backend.db.commit()
 
                                # Terminate if we have no domains left to check
                                if not self.results:
index 5136103956786a20470e5c64f7143f484e5b0053..78a5bf019a316091de9d1e611a67d9b47256e0e0 100644 (file)
@@ -169,6 +169,8 @@ class CLI(object):
                # check-domains
                check_domains = subparsers.add_parser("check-domains",
                                help=_("Checks if domains are alive"))
+               check_domains.add_argument("domain", nargs="*",
+                               help=_("Pass any domains to check"))
                check_domains.set_defaults(func=self.__check_domains)
 
                # Authentication: create-api-key
@@ -542,7 +544,7 @@ class CLI(object):
                        Runs the checker over all domains
                """
                checker = dnsbl.checker.Checker(backend)
-               checker.check()
+               checker.check(*args.domain)
 
        # Authentication