From: Michael Tremer Date: Thu, 8 Jan 2026 10:26:49 +0000 (+0000) Subject: checker: Allow passing some domains for manual checking X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=72331d6d437b59ab46d8f439b8b678eea975d31d;p=dbl.git checker: Allow passing some domains for manual checking Signed-off-by: Michael Tremer --- diff --git a/src/dnsbl/checker.py b/src/dnsbl/checker.py index 441a392..ff0bc8a 100644 --- a/src/dnsbl/checker.py +++ b/src/dnsbl/checker.py @@ -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: diff --git a/src/scripts/dnsbl.in b/src/scripts/dnsbl.in index 5136103..78a5bf0 100644 --- a/src/scripts/dnsbl.in +++ b/src/scripts/dnsbl.in @@ -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