typedef struct trie trie_t;
struct kr_qflags {
_Bool NO_MINIMIZE : 1;
- _Bool NO_THROTTLE : 1;
_Bool NO_IPV6 : 1;
_Bool NO_IPV4 : 1;
_Bool TCP : 1;
struct engine *engine = worker->engine;
kr_resolve_begin(req, &engine->resolver);
worker->stats.queries += 1;
- /* Throttle outbound queries only when high pressure */
- if (worker->stats.concurrent < QUERY_RATE_THRESHOLD) {
- req->options.NO_THROTTLE = true;
- }
return kr_ok();
}
/* Copy transitive flags from original query to CNAME followup. */
next->flags.TRACE = query->flags.TRACE;
next->flags.ALWAYS_CUT = query->flags.ALWAYS_CUT;
- next->flags.NO_THROTTLE = query->flags.NO_THROTTLE;
/* Original query might have turned minimization off, revert. */
next->flags.NO_MINIMIZE = req->options.NO_MINIMIZE;
*/
#define KR_MODULE_EXPORT(module) \
KR_EXPORT uint32_t module ## _api() { return KR_MODULE_API; }
-#define KR_MODULE_API ((uint32_t) 0x20200427)
+#define KR_MODULE_API ((uint32_t) 0x20210125)
typedef uint32_t (module_api_cb)(void);
if (!next_type && qry->zone_cut.name[0] == '\0') {
VERBOSE_MSG(qry, "=> fallback to root hints\n");
kr_zonecut_set_sbelt(ctx, &qry->zone_cut);
- qry->flags.NO_THROTTLE = true; /* Pick even bad SBELT servers */
return kr_error(EAGAIN);
}
/* No IPv4 nor IPv6, flag server as unusable. */
if (ret == 0) { /* Copy TA and key since it's the same cut to avoid lookup. */
kr_zonecut_copy_trust(&next->zone_cut, &qry->zone_cut);
kr_zonecut_set_sbelt(ctx, &qry->zone_cut); /* Add SBELT to parent in case query fails. */
- qry->flags.NO_THROTTLE = true; /* Pick even bad SBELT servers */
}
} else {
next->flags.AWAIT_CUT = true;
/* Root DNSKEY must be fetched from the hints to avoid chicken and egg problem. */
if (qry->sname[0] == '\0' && qry->stype == KNOT_RRTYPE_DNSKEY) {
kr_zonecut_set_sbelt(request->ctx, &qry->zone_cut);
- qry->flags.NO_THROTTLE = true; /* Pick even bad SBELT servers */
}
}
/** Query flags */
struct kr_qflags {
bool NO_MINIMIZE : 1; /**< Don't minimize QNAME. */
- bool NO_THROTTLE : 1; /**< No query/slow NS throttling. */
bool NO_IPV6 : 1; /**< Disable IPv6 */
bool NO_IPV4 : 1; /**< Disable IPv4 */
bool TCP : 1; /**< Use TCP for this query. */
-Subproject commit 8e4d318beebc2d50e95f749a36c39f44a0ac9719
+Subproject commit 63b699aac11583da61647b8d1d920745b053dd66