Log DNS optimistic background refresh outcomes
This commit is contained in:
+5
-1
@@ -498,7 +498,7 @@ func (c *Client) backgroundRefreshDNS(transport adapter.DNSTransport, question d
|
|||||||
response, err := c.exchangeToTransport(ctx, transport, message)
|
response, err := c.exchangeToTransport(ctx, transport, message)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if c.logger != nil {
|
if c.logger != nil {
|
||||||
c.logger.Debug("optimistic refresh failed for ", FqdnToDomain(question.Name), ": ", err)
|
c.logger.DebugContext(ctx, "optimistic refresh failed for ", FqdnToDomain(question.Name), ": ", err)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -510,6 +510,9 @@ func (c *Client) backgroundRefreshDNS(transport adapter.DNSTransport, question d
|
|||||||
rejected = !responseChecker(response)
|
rejected = !responseChecker(response)
|
||||||
}
|
}
|
||||||
if rejected {
|
if rejected {
|
||||||
|
if c.logger != nil {
|
||||||
|
c.logger.DebugContext(ctx, "optimistic refresh rejected for ", FqdnToDomain(question.Name))
|
||||||
|
}
|
||||||
if c.rdrc != nil {
|
if c.rdrc != nil {
|
||||||
c.rdrc.SaveRDRCAsync(transport.Tag(), question.Name, question.Qtype, c.logger)
|
c.rdrc.SaveRDRCAsync(transport.Tag(), question.Name, question.Qtype, c.logger)
|
||||||
}
|
}
|
||||||
@@ -520,6 +523,7 @@ func (c *Client) backgroundRefreshDNS(transport adapter.DNSTransport, question d
|
|||||||
}
|
}
|
||||||
timeToLive := applyResponseOptions(question, response, options)
|
timeToLive := applyResponseOptions(question, response, options)
|
||||||
c.storeCache(transport, question, response, timeToLive)
|
c.storeCache(transport, question, response, timeToLive)
|
||||||
|
logRefreshedResponse(c.logger, ctx, response, timeToLive)
|
||||||
}()
|
}()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,19 @@ func logExchangedResponse(logger logger.ContextLogger, ctx context.Context, resp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func logRefreshedResponse(logger logger.ContextLogger, ctx context.Context, response *dns.Msg, ttl uint32) {
|
||||||
|
if logger == nil || len(response.Question) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
domain := FqdnToDomain(response.Question[0].Name)
|
||||||
|
logger.DebugContext(ctx, "refreshed ", domain, " ", dns.RcodeToString[response.Rcode], " ", ttl)
|
||||||
|
for _, recordList := range [][]dns.RR{response.Answer, response.Ns, response.Extra} {
|
||||||
|
for _, record := range recordList {
|
||||||
|
logger.InfoContext(ctx, "refreshed ", dns.Type(record.Header().Rrtype).String(), " ", FormatQuestion(record.String()))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func logRejectedResponse(logger logger.ContextLogger, ctx context.Context, response *dns.Msg) {
|
func logRejectedResponse(logger logger.ContextLogger, ctx context.Context, response *dns.Msg) {
|
||||||
if logger == nil || len(response.Question) == 0 {
|
if logger == nil || len(response.Question) == 0 {
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user