Skip to content

Commit c680300

Browse files
committed
Log DNS optimistic background refresh outcomes
1 parent 3367bde commit c680300

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

dns/client.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ func (c *Client) backgroundRefreshDNS(transport adapter.DNSTransport, question d
500500
response, err := c.exchangeToTransport(ctx, transport, message)
501501
if err != nil {
502502
if c.logger != nil {
503-
c.logger.Debug("optimistic refresh failed for ", FqdnToDomain(question.Name), ": ", err)
503+
c.logger.DebugContext(ctx, "optimistic refresh failed for ", FqdnToDomain(question.Name), ": ", err)
504504
}
505505
return
506506
}
@@ -512,6 +512,9 @@ func (c *Client) backgroundRefreshDNS(transport adapter.DNSTransport, question d
512512
rejected = !responseChecker(response)
513513
}
514514
if rejected {
515+
if c.logger != nil {
516+
c.logger.DebugContext(ctx, "optimistic refresh rejected for ", FqdnToDomain(question.Name))
517+
}
515518
if c.rdrc != nil {
516519
c.rdrc.SaveRDRCAsync(transport.Tag(), question.Name, question.Qtype, c.logger)
517520
}
@@ -522,6 +525,7 @@ func (c *Client) backgroundRefreshDNS(transport adapter.DNSTransport, question d
522525
}
523526
timeToLive := applyResponseOptions(question, response, options)
524527
c.storeCache(transport, question, response, timeToLive)
528+
logRefreshedResponse(c.logger, ctx, response, timeToLive)
525529
}()
526530
}
527531

dns/client_log.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,19 @@ func logExchangedResponse(logger logger.ContextLogger, ctx context.Context, resp
4848
}
4949
}
5050

51+
func logRefreshedResponse(logger logger.ContextLogger, ctx context.Context, response *dns.Msg, ttl uint32) {
52+
if logger == nil || len(response.Question) == 0 {
53+
return
54+
}
55+
domain := FqdnToDomain(response.Question[0].Name)
56+
logger.DebugContext(ctx, "refreshed ", domain, " ", dns.RcodeToString[response.Rcode], " ", ttl)
57+
for _, recordList := range [][]dns.RR{response.Answer, response.Ns, response.Extra} {
58+
for _, record := range recordList {
59+
logger.InfoContext(ctx, "refreshed ", dns.Type(record.Header().Rrtype).String(), " ", FormatQuestion(record.String()))
60+
}
61+
}
62+
}
63+
5164
func logRejectedResponse(logger logger.ContextLogger, ctx context.Context, response *dns.Msg) {
5265
if logger == nil || len(response.Question) == 0 {
5366
return

0 commit comments

Comments
 (0)