mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-08 18:42:04 -04:00
Add dns_zone_logv()
Add a new libdns function, dns_zone_logv(), which takes a single va_list argument rather than a variable number of arguments and can be used as a base for implementing more specific zone logging functions.
This commit is contained in:
parent
b8fbe4aab4
commit
bb2dfb3f49
3 changed files with 41 additions and 0 deletions
|
|
@ -1968,6 +1968,15 @@ dns_zone_setdialup(dns_zone_t *zone, dns_dialuptype_t dialup);
|
|||
*\li 'dialup' to be a valid dialup type.
|
||||
*/
|
||||
|
||||
void
|
||||
dns_zone_logv(dns_zone_t *zone, isc_logcategory_t *category, int level,
|
||||
const char *prefix, const char *msg, va_list ap);
|
||||
/*%<
|
||||
* Log the message 'msg...' at 'level' using log category 'category', including
|
||||
* text that identifies the message as applying to 'zone'. If the (optional)
|
||||
* 'prefix' is not NULL, it will be placed at the start of the entire log line.
|
||||
*/
|
||||
|
||||
void
|
||||
dns_zone_log(dns_zone_t *zone, int level, const char *msg, ...)
|
||||
ISC_FORMAT_PRINTF(3, 4);
|
||||
|
|
|
|||
|
|
@ -1209,6 +1209,7 @@ dns_zone_loadandthaw
|
|||
dns_zone_loadnew
|
||||
dns_zone_log
|
||||
dns_zone_logc
|
||||
dns_zone_logv
|
||||
dns_zone_maintenance
|
||||
dns_zone_markdirty
|
||||
dns_zone_name
|
||||
|
|
|
|||
|
|
@ -13763,6 +13763,37 @@ dns_zone_nameonly(dns_zone_t *zone, char *buf, size_t length) {
|
|||
zone_name_tostr(zone, buf, length);
|
||||
}
|
||||
|
||||
void
|
||||
dns_zone_logv(dns_zone_t *zone, isc_logcategory_t *category, int level,
|
||||
const char *prefix, const char *fmt, va_list ap)
|
||||
{
|
||||
char message[4096];
|
||||
const char *zstr;
|
||||
|
||||
if (!isc_log_wouldlog(dns_lctx, level)) {
|
||||
return;
|
||||
}
|
||||
|
||||
vsnprintf(message, sizeof(message), fmt, ap);
|
||||
|
||||
switch (zone->type) {
|
||||
case dns_zone_key:
|
||||
zstr = "managed-keys-zone";
|
||||
break;
|
||||
case dns_zone_redirect:
|
||||
zstr = "redirect-zone";
|
||||
break;
|
||||
default:
|
||||
zstr = "zone ";
|
||||
}
|
||||
|
||||
isc_log_write(dns_lctx, category, DNS_LOGMODULE_ZONE, level,
|
||||
"%s%s%s%s: %s",
|
||||
(prefix != NULL ? prefix : ""),
|
||||
(prefix != NULL ? ": " : ""),
|
||||
zstr, zone->strnamerd, message);
|
||||
}
|
||||
|
||||
static void
|
||||
notify_log(dns_zone_t *zone, int level, const char *fmt, ...) {
|
||||
va_list ap;
|
||||
|
|
|
|||
Loading…
Reference in a new issue