Skip to content

Commit

Permalink
gcoap_dns: implement Max-Age-based TTL calculation
Browse files Browse the repository at this point in the history
  • Loading branch information
miri64 committed Aug 11, 2022
1 parent a93ba1e commit 42617a6
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion sys/net/application_layer/gcoap/dns.c
Original file line number Diff line number Diff line change
Expand Up @@ -740,11 +740,17 @@ static void _resp_handler(const gcoap_request_memo_t *memo, coap_pkt_t *pdu,
switch (coap_get_content_type(pdu)) {
case COAP_FORMAT_DNS_MESSAGE:
case COAP_FORMAT_NONE: {
uint32_t ttl;
uint32_t ttl = 0;

context->res = dns_msg_parse_reply(data, data_len, family,
context->addr_out, &ttl);
if (context->res > 0) {
uint32_t max_age;

if (coap_opt_get_uint(pdu, COAP_OPT_MAX_AGE, &max_age) < 0) {
max_age = 60;
}
ttl += max_age;
dns_cache_add(_domain_name_from_ctx(context), context->addr_out, context->res, ttl);
}
else if (ENABLE_DEBUG && (context->res < 0)) {
Expand Down

0 comments on commit 42617a6

Please sign in to comment.