mirror of https://github.com/getdnsapi/getdns.git
Return which extensions are set
(for programs (Stubby) to know whether a context will do native dnssec validation or not)
This commit is contained in:
parent
26877d4494
commit
d5518bad67
|
@ -3876,6 +3876,64 @@ _get_context_settings(getdns_context* context)
|
|||
(void) getdns_dict_util_set_string(result, "resolvconf", str_value);
|
||||
if (!getdns_context_get_hosts(context, &str_value) && str_value)
|
||||
(void) getdns_dict_util_set_string(result, "hosts", str_value);
|
||||
|
||||
/* Default settings for extensions */
|
||||
(void)getdns_dict_set_int(
|
||||
result, "add_warning_for_bad_dns",
|
||||
context->add_warning_for_bad_dns ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
(void)getdns_dict_set_int(
|
||||
result, "dnssec_return_all_statuses",
|
||||
context->dnssec_return_all_statuses ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
(void)getdns_dict_set_int(
|
||||
result, "dnssec_return_full_validation_chain",
|
||||
context->dnssec_return_full_validation_chain ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
(void)getdns_dict_set_int(
|
||||
result, "dnssec_return_only_secure",
|
||||
context->dnssec_return_only_secure ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
(void)getdns_dict_set_int(
|
||||
result, "dnssec_return_status",
|
||||
context->dnssec_return_status ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
(void)getdns_dict_set_int(
|
||||
result, "dnssec_return_validation_chain",
|
||||
context->dnssec_return_validation_chain ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
|
||||
#if defined(DNSSEC_ROADBLOCK_AVOIDANCE) && defined(HAVE_LIBUNBOUND)
|
||||
(void)getdns_dict_set_int(
|
||||
result, "dnssec_roadblock_avoidance",
|
||||
context->dnssec_roadblock_avoidance ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
#endif
|
||||
#ifdef EDNS_COOKIES
|
||||
(void)getdns_dict_set_int(
|
||||
result, "edns_cookies",
|
||||
context->edns_cookies ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
#endif
|
||||
(void)getdns_dict_set_int(
|
||||
result, "return_both_v4_and_v6",
|
||||
context->return_both_v4_and_v6 ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
(void)getdns_dict_set_int(
|
||||
result, "return_call_reporting",
|
||||
context->return_call_reporting ? GETDNS_EXTENSION_TRUE
|
||||
: GETDNS_EXTENSION_FALSE);
|
||||
(void)getdns_dict_set_int(result, "specify_class",
|
||||
(uint32_t)context->specify_class);
|
||||
|
||||
if (context->add_opt_parameters)
|
||||
(void)getdns_dict_set_dict(
|
||||
result, "add_opt_parameters", context->add_opt_parameters);
|
||||
|
||||
if (context->header)
|
||||
(void)getdns_dict_set_dict(
|
||||
result, "header", context->add_opt_parameters);
|
||||
|
||||
return result;
|
||||
error:
|
||||
getdns_dict_destroy(result);
|
||||
|
|
20
src/dict.c
20
src/dict.c
|
@ -1082,7 +1082,25 @@ getdns_pp_dict(gldns_buffer * buf, size_t indent,
|
|||
strcmp(item->node.key, "follow_redirects") == 0 ||
|
||||
strcmp(item->node.key, "transport") == 0 ||
|
||||
strcmp(item->node.key, "resolution_type") == 0 ||
|
||||
strcmp(item->node.key, "tls_authentication") == 0 ) &&
|
||||
strcmp(item->node.key, "tls_authentication") == 0 ||
|
||||
|
||||
/* extensions */
|
||||
strcmp(item->node.key, "add_warning_for_bad_dns") == 0 ||
|
||||
strcmp(item->node.key, "dnssec_return_all_statuses") == 0 ||
|
||||
strcmp(item->node.key, "dnssec_return_full_validation_chain") == 0 ||
|
||||
strcmp(item->node.key, "dnssec_return_only_secure") == 0 ||
|
||||
strcmp(item->node.key, "dnssec_return_status") == 0 ||
|
||||
strcmp(item->node.key, "dnssec_return_validation_chain") == 0 ||
|
||||
#if defined(DNSSEC_ROADBLOCK_AVOIDANCE) && defined(HAVE_LIBUNBOUND)
|
||||
strcmp(item->node.key, "dnssec_roadblock_avoidance") == 0 ||
|
||||
#endif
|
||||
#ifdef EDNS_COOKIES
|
||||
strcmp(item->node.key, "edns_cookies") == 0 ||
|
||||
#endif
|
||||
strcmp(item->node.key, "return_api_information") == 0 ||
|
||||
strcmp(item->node.key, "return_both_v4_and_v6") == 0 ||
|
||||
strcmp(item->node.key, "return_call_reporting") == 0
|
||||
) &&
|
||||
(strval =
|
||||
_getdns_get_const_info(item->i.data.n)->name)) {
|
||||
if (gldns_buffer_printf(buf, " %s", strval) < 0)
|
||||
|
|
Loading…
Reference in New Issue