make update_log() work if zone is not set

- update_log() is called to log update errors, but if those errors
  occur before the zone is set (for example, when returning NOTAUTH)
  it returns without logging anything.

(cherry picked from commit 395f6a1474)
This commit is contained in:
Evan Hunt 2018-10-02 22:33:17 -07:00 committed by Mark Andrews
parent f8453f45f7
commit d9849bb589

View file

@ -267,24 +267,34 @@ update_log(ns_client_t *client, dns_zone_t *zone,
char namebuf[DNS_NAME_FORMATSIZE];
char classbuf[DNS_RDATACLASS_FORMATSIZE];
if (client == NULL || zone == NULL)
if (client == NULL) {
return;
}
if (isc_log_wouldlog(ns_g_lctx, level) == false)
if (isc_log_wouldlog(ns_g_lctx, level) == false) {
return;
dns_name_format(dns_zone_getorigin(zone), namebuf,
sizeof(namebuf));
dns_rdataclass_format(dns_zone_getclass(zone), classbuf,
sizeof(classbuf));
}
va_start(ap, fmt);
vsnprintf(message, sizeof(message), fmt, ap);
va_end(ap);
ns_client_log(client, NS_LOGCATEGORY_UPDATE, NS_LOGMODULE_UPDATE,
level, "updating zone '%s/%s': %s",
namebuf, classbuf, message);
if (zone != NULL) {
dns_name_format(dns_zone_getorigin(zone), namebuf,
sizeof(namebuf));
dns_rdataclass_format(dns_zone_getclass(zone), classbuf,
sizeof(classbuf));
ns_client_log(client, NS_LOGCATEGORY_UPDATE,
NS_LOGMODULE_UPDATE,
level, "updating zone '%s/%s': %s",
namebuf, classbuf, message);
} else {
ns_client_log(client, NS_LOGCATEGORY_UPDATE,
NS_LOGMODULE_UPDATE,
level, "%s", message);
}
}
static void