Stopping dnswatcher during a DNS check logged every lookup the stop cut
short as an error, "context canceled". The four places in the watcher
that log a failed lookup now do it through logFailedLookup, which logs
nothing when the watcher's context was cancelled; the port and TLS
checks already return quietly. It asks the context, not the lookup's
error, because the resolver reports a cancelled lookup with its own
error, which does not wrap context.Canceled. A context whose deadline
passed is not cancelled, so a lookup that ran out of time is still
logged as an error. The tests run a check on a cancelled context and on
one whose deadline passed; neither sends a query.
Model: opus-5-5
When shutdown cancels a check that is under way, the rest of the check
still runs with the cancelled context. The resolver already drops a
lookup the context cut short, but a cancelled connection attempt was
saved as a closed port or a failed certificate check and notified as
Port Change or TLS Failure. The watcher now drops a port or TLS check
result when its context was cancelled, the same way. The test runs a
check with the context already cancelled, using the real resolver and
the real port and TLS checkers; no query is sent and no connection is
made.
Model: opus-5-5