From b758b67c3722a793c6164cfd5e147068c205bdf6 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Thu, 23 Aug 2018 21:41:23 +0100 Subject: [PATCH] Improve logging of RRs from --dns-rr. --- src/auth.c | 2 +- src/cache.c | 31 +++++++++++++++++++++++-------- src/rfc1035.c | 2 +- 3 files changed, 25 insertions(+), 10 deletions(-) diff --git a/src/auth.c b/src/auth.c index 93f9077..9c5c15b 100644 --- a/src/auth.c +++ b/src/auth.c @@ -339,7 +339,7 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n if (rc == 2 && txt->class == qtype) { found = 1; - log_query(F_CONFIG | F_RRNAME, name, NULL, ""); + log_query(F_CONFIG | F_RRNAME, name, NULL, querystr(NULL, txt->class)); if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, daemon->auth_ttl, NULL, txt->class, C_IN, "t", txt->len, txt->txt)) anscount++; diff --git a/src/cache.c b/src/cache.c index 85b3bbc..b8748d1 100644 --- a/src/cache.c +++ b/src/cache.c @@ -70,7 +70,8 @@ static const struct { { 252, "AXFR" }, { 253, "MAILB" }, { 254, "MAILA" }, - { 255, "ANY" } + { 255, "ANY" }, + { 257, "CAA" } }; static void cache_free(struct crec *crecp); @@ -1703,9 +1704,13 @@ char *querystr(char *desc, unsigned short type) break; } - len += 3; /* braces, terminator */ - len += strlen(desc); - + if (desc) + { + len += 2; /* braces */ + len += strlen(desc); + } + len++; /* terminator */ + if (!buff || bufflen < len) { if (buff) @@ -1719,12 +1724,22 @@ char *querystr(char *desc, unsigned short type) if (buff) { - if (types) - sprintf(buff, "%s[%s]", desc, types); + if (desc) + { + if (types) + sprintf(buff, "%s[%s]", desc, types); + else + sprintf(buff, "%s[type=%d]", desc, type); + } else - sprintf(buff, "%s[type=%d]", desc, type); + { + if (types) + sprintf(buff, "<%s>", types); + else + sprintf(buff, "type=%d", type); + } } - + return buff ? buff : ""; } diff --git a/src/rfc1035.c b/src/rfc1035.c index bcb180c..af1d99b 100644 --- a/src/rfc1035.c +++ b/src/rfc1035.c @@ -1377,7 +1377,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen, sec_data = 0; if (!dryrun) { - log_query(F_CONFIG | F_RRNAME, name, NULL, ""); + log_query(F_CONFIG | F_RRNAME, name, NULL, querystr(NULL, t->class)); if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, daemon->local_ttl, NULL, t->class, C_IN, "t", t->len, t->txt))