mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-04 08:35:31 +00:00
Merge branch '1059-prevent-tcp-failures-from-affecting-edns-stats' into 'master'
Prevent TCP failures from affecting EDNS stats See merge request isc-projects/bind9!2501
This commit is contained in:
2
CHANGES
2
CHANGES
@@ -1,3 +1,5 @@
|
|||||||
|
5310. [bug] TCP failures were affecting EDNS statistics. [GL #1059]
|
||||||
|
|
||||||
5309. [placeholder]
|
5309. [placeholder]
|
||||||
|
|
||||||
5308. [bug] Don't log DNS_R_UNCHANGED from sync_secure_journal()
|
5308. [bug] Don't log DNS_R_UNCHANGED from sync_secure_journal()
|
||||||
|
@@ -241,6 +241,18 @@ fi
|
|||||||
if [ $ret != 0 ]; then echo_i "failed"; fi
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
status=`expr $status + $ret`
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
|
n=`expr $n + 1`
|
||||||
|
echo_i "checking that TCP failures do not influence EDNS statistics in the ADB ($n)"
|
||||||
|
ret=0
|
||||||
|
rndc_dumpdb ns1 -adb || ret=1
|
||||||
|
timeouts512=`sed -n "s|.*10\.53\.0\.7.*\[edns \([0-9/][0-9/]*\).*|\1|p" ns1/named_dump.db.test$n | awk -F/ '{print $NF}'`
|
||||||
|
if [ $timeouts512 -ne 0 ]; then
|
||||||
|
echo_i "512-byte EDNS timeouts according to ADB: $timeouts512, expected: 0"
|
||||||
|
ret=1
|
||||||
|
fi
|
||||||
|
if [ $ret != 0 ]; then echo_i "failed"; fi
|
||||||
|
status=`expr $status + $ret`
|
||||||
|
|
||||||
$PERL $SYSTEMTESTTOP/stop.pl --use-rndc --port ${CONTROLPORT} legacy ns1
|
$PERL $SYSTEMTESTTOP/stop.pl --use-rndc --port ${CONTROLPORT} legacy ns1
|
||||||
copy_setports ns1/named2.conf.in ns1/named.conf
|
copy_setports ns1/named2.conf.in ns1/named.conf
|
||||||
$PERL $SYSTEMTESTTOP/start.pl --noclean --restart --port ${PORT} legacy ns1
|
$PERL $SYSTEMTESTTOP/start.pl --noclean --restart --port ${PORT} legacy ns1
|
||||||
|
@@ -1142,6 +1142,25 @@ resquery_destroy(resquery_t **queryp) {
|
|||||||
empty_bucket(res);
|
empty_bucket(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*%
|
||||||
|
* Update EDNS statistics for a server after not getting a response to a UDP
|
||||||
|
* query sent to it.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
update_edns_stats(resquery_t *query) {
|
||||||
|
fetchctx_t *fctx = query->fctx;
|
||||||
|
|
||||||
|
if ((query->options & DNS_FETCHOPT_TCP) != 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((query->options & DNS_FETCHOPT_NOEDNS0) == 0) {
|
||||||
|
dns_adb_ednsto(fctx->adb, query->addrinfo, query->udpsize);
|
||||||
|
} else {
|
||||||
|
dns_adb_timeout(fctx->adb, query->addrinfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp,
|
fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp,
|
||||||
isc_time_t *finish, bool no_response,
|
isc_time_t *finish, bool no_response,
|
||||||
@@ -1202,11 +1221,7 @@ fctx_cancelquery(resquery_t **queryp, dns_dispatchevent_t **deventp,
|
|||||||
uint32_t value;
|
uint32_t value;
|
||||||
uint32_t mask;
|
uint32_t mask;
|
||||||
|
|
||||||
if ((query->options & DNS_FETCHOPT_NOEDNS0) == 0)
|
update_edns_stats(query);
|
||||||
dns_adb_ednsto(fctx->adb, query->addrinfo,
|
|
||||||
query->udpsize);
|
|
||||||
else
|
|
||||||
dns_adb_timeout(fctx->adb, query->addrinfo);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If "forward first;" is used and a forwarder timed
|
* If "forward first;" is used and a forwarder timed
|
||||||
|
Reference in New Issue
Block a user