- Jan 27, 2022
-
-
By using the cumulative time since the zone expiration (instead of the last time interval) we achieve an approximation of exponential retry backoff with base 2 (rather than with base 3, as it was until now). Now, with every retry attempt, the interval between refreshes only doubles (with up to 30 second jitter). This change helps avoid excessive waiting for a refresh when a few early attempts fail.
-
Daniel Salzman authored
-
-
-
Daniel Salzman authored
-
Daniel Salzman authored
-
Daniel Salzman authored
-
Daniel Salzman authored
-
Daniel Salzman authored
-
Daniel Salzman authored
-
Daniel Salzman authored
-
- Dec 22, 2021
-
-
- Dec 20, 2021
-
-
Daniel Salzman authored
-
Daniel Salzman authored
-
-
-
Daniel Salzman authored
-
Daniel Salzman authored
-
Daniel Salzman authored
-
- Dec 18, 2021
-
-
Daniel Salzman authored
-
-
- Dec 15, 2021
-
-
Daniel Salzman authored
-
Daniel Salzman authored
-
-
-
-
-
-
- Dec 12, 2021
-
-
Daniel Salzman authored
-
Daniel Salzman authored
-
-
-
- Dec 10, 2021
-
-
Daniel Salzman authored
-
Daniel Salzman authored
-
-
Daniel Salzman authored
-
Previously, after "mod-dnstap: Restore the original query QNAME case", the dnstap module would copy the original QNAME into the query packet buffer passed to the dnstap module, so that the originally cased query message would be written out to the dnstap logging stream. However, there are error conditions that can result in the query packet's 'qname_size' field being updated to a non-zero value (the question section was successfully parsed), but the packet was ultimately rejected. In the prepare_answer() function in src/knot/nameserver/process_query.c, there are several error return paths that prevent the 'orig_qname' field from being written by the call to memcpy(). In this case, the 'orig_qname' field in the corresponding knotd_qdata_extra_t object will remain at an initialized (zeroed out) value. Before this patch, in some cases (e.g. in responses to some queries that return FORMERR), mod-dnstap would overwrite the QNAME in the query packet buffer with 'qname_size' bytes from the 'orig_qname' field. With 'qname_size' set to a non-zero value (due to successful parsing of the QNAME) but with 'orig_qname' set to its original initialized (zeroed out) value, this would result in zeroing out the QNAME in the query packet buffer. This would then result in writing a corrupted query message into the dnstap logging stream. Since mod-dnstap writes directly to the query packet buffer rather than making a copy, this corruption would also be visible to modules executing after mod-dnstap as well as the rest of knotd. This patch updates mod-dnstap's msg_query_qname_restore() so that it avoids copying the original QNAME into the query packet buffer if the 'orig_qname' field has been left in its initialized (zeroed out) value. fixes #777
-
Daniel Salzman authored
-
Daniel Salzman authored
-
-