Stopping dnswatcher during a DNS check logged every lookup the stop cut
short as an error, "context canceled". The watcher now logs a failed
lookup only when its context was not 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