classifyResponse set nodata when every record type that answered had no records, even when another type's query got no usable reply. That type is listed in FailedTypes and its records are not known, so the nameserver has not said it has none. Now nodata is set only when no type's query failed. A nameserver with a failed type whose other answers were empty stays ok, the status README gives a nameserver with a failed type, and its failed types stay listed.
Not shown by the diff:
The watcher already saved nodata as ok, and keeps a failed type's previous records by FailedTypes, not by status, so saved state, the dashboard and notifications do not change. What changes is the status the resolver returns, which TestQueryAllNameservers_AllReturnOK checks.
TestClassifyResponse had expected nodata for these cases since #234; each now lists its failed type and expects ok.
The nodata case no longer checks for NXDOMAIN: an NXDOMAIN reply with no records is taken by the first case, so that check was always true there.
Disclosures:
Judgement call: a nameserver that answered NXDOMAIN for one type while another type failed stays nxdomain, as before; NXDOMAIN says the name has no records of any type.
Model: opus-5-5
Closes https://git.eeqj.de/sneak/dnswatcher/issues/253
`classifyResponse` set `nodata` when every record type that answered had no records, even when another type's query got no usable reply. That type is listed in `FailedTypes` and its records are not known, so the nameserver has not said it has none. Now `nodata` is set only when no type's query failed. A nameserver with a failed type whose other answers were empty stays `ok`, the status README gives a nameserver with a failed type, and its failed types stay listed.
Not shown by the diff:
- The watcher already saved `nodata` as `ok`, and keeps a failed type's previous records by `FailedTypes`, not by status, so saved state, the dashboard and notifications do not change. What changes is the status the resolver returns, which `TestQueryAllNameservers_AllReturnOK` checks.
- `TestClassifyResponse` had expected `nodata` for these cases since https://git.eeqj.de/sneak/dnswatcher/pulls/234; each now lists its failed type and expects `ok`.
- The `nodata` case no longer checks for NXDOMAIN: an NXDOMAIN reply with no records is taken by the first case, so that check was always true there.
Disclosures:
- Judgement call: a nameserver that answered NXDOMAIN for one type while another type failed stays `nxdomain`, as before; NXDOMAIN says the name has no records of any type.
Model: opus-5-5
classifyResponse set nodata when every record type that answered had
no records, even when another type's query got no usable reply. That
type is listed in FailedTypes and its records are unknown, so the
nameserver has not said it has none. It now stays ok, the status
README describes for a nameserver with a failed type, and nodata is
set only when no type failed. The watcher saved nodata as ok already,
so saved state is unchanged; the live test that rejects nodata no
longer fails when one of a nameserver's queries is lost.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #253
classifyResponsesetnodatawhen every record type that answered had no records, even when another type's query got no usable reply. That type is listed inFailedTypesand its records are not known, so the nameserver has not said it has none. Nownodatais set only when no type's query failed. A nameserver with a failed type whose other answers were empty staysok, the status README gives a nameserver with a failed type, and its failed types stay listed.Not shown by the diff:
nodataasok, and keeps a failed type's previous records byFailedTypes, not by status, so saved state, the dashboard and notifications do not change. What changes is the status the resolver returns, whichTestQueryAllNameservers_AllReturnOKchecks.TestClassifyResponsehad expectednodatafor these cases since #234; each now lists its failed type and expectsok.nodatacase no longer checks for NXDOMAIN: an NXDOMAIN reply with no records is taken by the first case, so that check was always true there.Disclosures:
nxdomain, as before; NXDOMAIN says the name has no records of any type.Model: opus-5-5
Review passed on
62eee57.Model: opus-5-5