static bool qmin = false, qmin_strict = false;
static bool use_tcp = false;
+static bool cookie = true;
static char *anchorfile = NULL;
static char *trust_anchor = NULL;
FULLCHECK("class");
noclass = !state;
break;
- case 'o': /* comments */
- FULLCHECK("comments");
- showcomments = state;
+ case 'o':
+ switch (cmd[2]) {
+ case 'm': /* comments */
+ FULLCHECK("comments");
+ showcomments = state;
+ break;
+ case 'o': /* cookie */
+ FULLCHECK("cookie");
+ cookie = state;
+ break;
+ default:
+ goto invalid_option;
+ }
break;
case 'r': /* crypto */
FULLCHECK("crypto");
srcaddr4, srcaddr6));
dns_client_setmaxrestarts(client, restarts);
dns_client_setmaxqueries(client, maxtotal);
+ dns_client_setsendcookie(client, cookie);
/* Set the nameserver */
if (server != NULL) {
view->qminimization = qmin;
view->qmin_strict = qmin_strict;
+ view->sendcookie = cookie;
dns_view_initsecroots(view);
CHECK(setup_dnsseckeys(NULL, view));
client->max_queries = max_queries;
}
+void
+dns_client_setsendcookie(dns_client_t *client, bool sendcookie) {
+ REQUIRE(DNS_CLIENT_VALID(client));
+
+ client->view->sendcookie = sendcookie;
+}
+
static isc_result_t
getrdataset(isc_mem_t *mctx, dns_rdataset_t **rdatasetp) {
dns_rdataset_t *rdataset;
*\li 'max_queries' is greater than 0.
*/
+void
+dns_client_setsendcookie(dns_client_t *client, bool sendcookie);
+/*%<
+ * Add EDNS COOKIE options to the DNS request.
+ *
+ * Requires:
+ *
+ *\li 'client' is a valid client.
+ */
+
typedef void (*dns_client_resolve_cb)(dns_client_t *client,
const dns_name_t *name,
dns_namelist_t *namelist,