Improve logging of RRs from --dns-rr.

This commit is contained in:
Simon Kelley
2018-08-23 21:41:23 +01:00
parent 9bafdc62b7
commit b758b67c37
3 changed files with 25 additions and 10 deletions

View File

@@ -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) if (rc == 2 && txt->class == qtype)
{ {
found = 1; found = 1;
log_query(F_CONFIG | F_RRNAME, name, NULL, "<RR>"); log_query(F_CONFIG | F_RRNAME, name, NULL, querystr(NULL, txt->class));
if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, daemon->auth_ttl, if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, daemon->auth_ttl,
NULL, txt->class, C_IN, "t", txt->len, txt->txt)) NULL, txt->class, C_IN, "t", txt->len, txt->txt))
anscount++; anscount++;

View File

@@ -70,7 +70,8 @@ static const struct {
{ 252, "AXFR" }, { 252, "AXFR" },
{ 253, "MAILB" }, { 253, "MAILB" },
{ 254, "MAILA" }, { 254, "MAILA" },
{ 255, "ANY" } { 255, "ANY" },
{ 257, "CAA" }
}; };
static void cache_free(struct crec *crecp); static void cache_free(struct crec *crecp);
@@ -1703,8 +1704,12 @@ char *querystr(char *desc, unsigned short type)
break; break;
} }
len += 3; /* braces, terminator */ if (desc)
len += strlen(desc); {
len += 2; /* braces */
len += strlen(desc);
}
len++; /* terminator */
if (!buff || bufflen < len) if (!buff || bufflen < len)
{ {
@@ -1719,10 +1724,20 @@ char *querystr(char *desc, unsigned short type)
if (buff) if (buff)
{ {
if (types) if (desc)
sprintf(buff, "%s[%s]", desc, types); {
if (types)
sprintf(buff, "%s[%s]", desc, types);
else
sprintf(buff, "%s[type=%d]", desc, type);
}
else else
sprintf(buff, "%s[type=%d]", desc, type); {
if (types)
sprintf(buff, "<%s>", types);
else
sprintf(buff, "type=%d", type);
}
} }
return buff ? buff : ""; return buff ? buff : "";

View File

@@ -1377,7 +1377,7 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
sec_data = 0; sec_data = 0;
if (!dryrun) if (!dryrun)
{ {
log_query(F_CONFIG | F_RRNAME, name, NULL, "<RR>"); log_query(F_CONFIG | F_RRNAME, name, NULL, querystr(NULL, t->class));
if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
daemon->local_ttl, NULL, daemon->local_ttl, NULL,
t->class, C_IN, "t", t->len, t->txt)) t->class, C_IN, "t", t->len, t->txt))