diff options
author | Lennart Poettering <lennart@poettering.net> | 2016-01-19 17:11:28 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2016-01-19 18:37:45 +0100 |
commit | 593f665cd5ffddbaa3ddbe9d963af923ed1cc5dc (patch) | |
tree | 8798ac9f873c2d95a8034f8b87026c2c2938b28b /src/resolve | |
parent | 786c8e9fbc95d1cb6365b3854f3090fb26bf46b2 (diff) |
resolve-host: show whether DNSSEC is supported or not in --statistics output
This should be generally useful information, hence show it.
Diffstat (limited to 'src/resolve')
-rw-r--r-- | src/resolve/resolved-bus.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c index 4593bab5e8..db7b88e5fb 100644 --- a/src/resolve/resolved-bus.c +++ b/src/resolve/resolved-bus.c @@ -1292,6 +1292,37 @@ static int bus_property_get_dnssec_statistics( (uint64_t) m->n_dnssec_indeterminate); } +static int bus_property_get_dnssec_supported( + sd_bus *bus, + const char *path, + const char *interface, + const char *property, + sd_bus_message *reply, + void *userdata, + sd_bus_error *error) { + + Manager *m = userdata; + DnsServer *server; + bool supported = true; + Iterator i; + Link *l; + + assert(reply); + assert(m); + + server = manager_get_dns_server(m); + if (server) + supported = supported && dns_server_dnssec_supported(server); + + HASHMAP_FOREACH(l, m->links, i) { + server = link_get_dns_server(l); + if (server) + supported = supported && dns_server_dnssec_supported(server); + } + + return sd_bus_message_append(reply, "b", supported); +} + static int bus_method_reset_statistics(sd_bus_message *message, void *userdata, sd_bus_error *error) { Manager *m = userdata; DnsScope *s; @@ -1316,6 +1347,7 @@ static const sd_bus_vtable resolve_vtable[] = { SD_BUS_PROPERTY("TransactionStatistics", "(tt)", bus_property_get_transaction_statistics, 0, 0), SD_BUS_PROPERTY("CacheStatistics", "(ttt)", bus_property_get_cache_statistics, 0, 0), SD_BUS_PROPERTY("DNSSECStatistics", "(tttt)", bus_property_get_dnssec_statistics, 0, 0), + SD_BUS_PROPERTY("DNSSECSupported", "b", bus_property_get_dnssec_supported, 0, 0), SD_BUS_METHOD("ResolveHostname", "isit", "a(iiay)st", bus_method_resolve_hostname, SD_BUS_VTABLE_UNPRIVILEGED), SD_BUS_METHOD("ResolveAddress", "iiayt", "a(is)t", bus_method_resolve_address, SD_BUS_VTABLE_UNPRIVILEGED), |