mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-03 14:00:47 -05:00
Plug a geoip leak and some cleanup [RT #43106]
(cherry picked from commita26a62cef2) (cherry picked from commitaf326c2e3f)
This commit is contained in:
parent
0edca7b6cd
commit
a3cee5460d
4 changed files with 25 additions and 9 deletions
|
|
@ -4595,27 +4595,33 @@ chase_scanname(dns_name_t *name, dns_rdatatype_t type, dns_rdatatype_t covers)
|
|||
msg = ISC_LIST_NEXT(msg, link)) {
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_ANSWER)
|
||||
== ISC_R_SUCCESS)
|
||||
{
|
||||
rdataset = chase_scanname_section(msg->msg, name,
|
||||
type, covers,
|
||||
DNS_SECTION_ANSWER);
|
||||
if (rdataset != NULL)
|
||||
return (rdataset);
|
||||
}
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_AUTHORITY)
|
||||
== ISC_R_SUCCESS)
|
||||
{
|
||||
rdataset =
|
||||
chase_scanname_section(msg->msg, name,
|
||||
type, covers,
|
||||
DNS_SECTION_AUTHORITY);
|
||||
if (rdataset != NULL)
|
||||
return (rdataset);
|
||||
}
|
||||
if (dns_message_firstname(msg->msg, DNS_SECTION_ADDITIONAL)
|
||||
== ISC_R_SUCCESS)
|
||||
{
|
||||
rdataset =
|
||||
chase_scanname_section(msg->msg, name, type,
|
||||
covers,
|
||||
DNS_SECTION_ADDITIONAL);
|
||||
if (rdataset != NULL)
|
||||
return (rdataset);
|
||||
}
|
||||
}
|
||||
|
||||
return (NULL);
|
||||
|
|
|
|||
|
|
@ -3171,7 +3171,6 @@ ns_client_logv(ns_client_t *client, isc_logcategory_t *category,
|
|||
isc_logmodule_t *module, int level, const char *fmt, va_list ap)
|
||||
{
|
||||
char msgbuf[4096];
|
||||
char peerbuf[ISC_SOCKADDR_FORMATSIZE];
|
||||
char signerbuf[DNS_NAME_FORMATSIZE], qnamebuf[DNS_NAME_FORMATSIZE];
|
||||
const char *viewname = "";
|
||||
const char *sep1 = "", *sep2 = "", *sep3 = "", *sep4 = "";
|
||||
|
|
@ -3180,8 +3179,6 @@ ns_client_logv(ns_client_t *client, isc_logcategory_t *category,
|
|||
|
||||
vsnprintf(msgbuf, sizeof(msgbuf), fmt, ap);
|
||||
|
||||
ns_client_name(client, peerbuf, sizeof(peerbuf));
|
||||
|
||||
if (client->signer != NULL) {
|
||||
dns_name_format(client->signer, signerbuf, sizeof(signerbuf));
|
||||
sep1 = "/key ";
|
||||
|
|
@ -3203,10 +3200,21 @@ ns_client_logv(ns_client_t *client, isc_logcategory_t *category,
|
|||
viewname = client->view->name;
|
||||
}
|
||||
|
||||
isc_log_write(ns_g_lctx, category, module, level,
|
||||
"client %s%s%s%s%s%s%s%s: %s",
|
||||
peerbuf, sep1, signer, sep2, qname, sep3,
|
||||
sep4, viewname, msgbuf);
|
||||
if (client->peeraddr_valid) {
|
||||
char peerbuf[ISC_SOCKADDR_FORMATSIZE];
|
||||
|
||||
isc_sockaddr_format(&client->peeraddr,
|
||||
peerbuf, sizeof(peerbuf));
|
||||
isc_log_write(ns_g_lctx, category, module, level,
|
||||
"client @%p %s%s%s%s%s%s%s%s: %s",
|
||||
client, peerbuf, sep1, signer, sep2, qname, sep3,
|
||||
sep4, viewname, msgbuf);
|
||||
} else {
|
||||
isc_log_write(ns_g_lctx, category, module, level,
|
||||
"client @%p%s%s%s%s%s%s%s: %s",
|
||||
client, sep1, signer, sep2, qname, sep3,
|
||||
sep4, viewname, msgbuf);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -68,10 +68,12 @@ init_geoip_db(GeoIP **dbp, GeoIPDBTypes edition, GeoIPDBTypes fallback,
|
|||
}
|
||||
|
||||
info = GeoIP_database_info(db);
|
||||
if (info != NULL)
|
||||
if (info != NULL) {
|
||||
isc_log_write(ns_g_lctx, NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER, ISC_LOG_INFO,
|
||||
"%s", info);
|
||||
free(info);
|
||||
}
|
||||
|
||||
*dbp = db;
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ grep ";" dig.out.ns2
|
|||
$PERL ../digcomp.pl --lc dig.out.ns2 knowngood.dig.out || status=1
|
||||
|
||||
echo "I:only one tcp socket was used"
|
||||
tcpclients=`grep "client 10.53.0.7#[0-9]*:" ns2/named.run | awk '{print $4}' | sort | uniq -c | wc -l`
|
||||
tcpclients=`awk '$3 == "client" && $5 ~ /10.53.0.7#[0-9]*:/ {print $5}' ns2/named.run | sort | uniq -c | wc -l`
|
||||
|
||||
test $tcpclients -eq 1 || { status=1; echo "I:failed"; }
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue