diff --git a/respodns/dns.py b/respodns/dns.py index 1b04006..b65b4b4 100644 --- a/respodns/dns.py +++ b/respodns/dns.py @@ -113,7 +113,7 @@ def process_result(res, ip, check, opts: Options): async def try_ip(db, server_ip, checks, opts: Options): from .util import make_pooler - from asyncio import sleep + from asyncio import sleep, CancelledError entries = [] deferred = [] @@ -130,7 +130,11 @@ async def try_ip(db, server_ip, checks, opts: Options): def finisher(done, pending): nonlocal success for task in done: - res, ip, check = task.result() + try: + res, ip, check = task.result() + except CancelledError: + success = False + break entry = process_result(res, ip, check, opts) map(maybe_put_ip, entry.addrs) entries.append(entry)