Plug a geoip leak and some cleanup [RT #43106]

(cherry picked from commit a26a62cef2)
(cherry picked from commit af326c2e3f)
This commit is contained in:
Evan Hunt 2016-08-29 11:56:56 -07:00 committed by Mukund Sivaraman
parent 0edca7b6cd
commit a3cee5460d
4 changed files with 25 additions and 9 deletions

View file

@ -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);

View file

@ -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

View file

@ -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;

View file

@ -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"; }