From cae5d2d2fbe0cd9e0343b7f63851b03ed6a222f5 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 4 Feb 2021 16:05:05 +0100 Subject: Revert "resolvectl: Add show-multicast verb to show discovered LLMNR/mDNS hosts" --- man/org.freedesktop.resolve1.xml | 5 -- man/resolvectl.xml | 7 --- mkosi.postinst | 5 -- src/resolve/resolvectl.c | 89 +----------------------------------- src/resolve/resolved-bus.c | 99 ++++------------------------------------ src/resolve/resolved-dns-cache.c | 50 +------------------- src/resolve/resolved-dns-cache.h | 3 +- src/resolve/resolved-dns-scope.c | 2 +- 8 files changed, 14 insertions(+), 246 deletions(-) delete mode 100755 mkosi.postinst diff --git a/man/org.freedesktop.resolve1.xml b/man/org.freedesktop.resolve1.xml index 9036f7d11f..860a14877d 100644 --- a/man/org.freedesktop.resolve1.xml +++ b/man/org.freedesktop.resolve1.xml @@ -115,7 +115,6 @@ node /org/freedesktop/resolve1 { ResetStatistics(); FlushCaches(); ResetServerFeatures(); - GetMulticastHosts(out a(stiiay) UNNAMED); properties: readonly s LLMNRHostname = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") @@ -165,8 +164,6 @@ node /org/freedesktop/resolve1 { - - @@ -215,8 +212,6 @@ node /org/freedesktop/resolve1 { - - diff --git a/man/resolvectl.xml b/man/resolvectl.xml index c6e9f147a7..fb6cae7b9b 100644 --- a/man/resolvectl.xml +++ b/man/resolvectl.xml @@ -180,13 +180,6 @@ automatically, an explicit reverting is not necessary in that case. - - show-multicast - - Display the discovered LLMNR and mDNS hostnames along with their IPv4/IPv6 addresses. - - - diff --git a/mkosi.postinst b/mkosi.postinst deleted file mode 100755 index 1bbb9e41c5..0000000000 --- a/mkosi.postinst +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -set -e - -mkdir -p /root/build -echo "directory /root/build" > ~/.gdbinit diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c index 77b7b72ed9..b1779a6418 100644 --- a/src/resolve/resolvectl.c +++ b/src/resolve/resolvectl.c @@ -2500,90 +2500,6 @@ static int verb_log_level(int argc, char *argv[], void *userdata) { return 0; } -static const char *resolve_flags_to_string(uint64_t flags) { - return flags & SD_RESOLVED_DNS ? "DNS" : - flags & SD_RESOLVED_LLMNR_IPV4 ? "LLMNR/IPv4" : - flags & SD_RESOLVED_LLMNR_IPV6 ? "LLMNR/IPv6" : - flags & SD_RESOLVED_MDNS_IPV4 ? "mDNS/IPv4" : - flags & SD_RESOLVED_MDNS_IPV6 ? "mDNS/IPv6" : - ""; -} - -static int verb_show_multicast(int argc, char *argv[], void *userdata) { - _cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL; - _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; - _cleanup_(table_unrefp) Table *table = NULL; - sd_bus *bus = userdata; - int r; - - assert(bus); - - table = table_new("Hostname", "Address", "Source"); - if (!table) - return log_oom(); - - r = bus_call_method(bus, bus_resolve_mgr, "GetMulticastHosts", &error, &reply, NULL); - if (r < 0) - return log_error_errno(r, "Failed to query systemd-resolved: %s", bus_error_message(&error, r)); - - r = sd_bus_message_enter_container(reply, 'a', "(stiiay)"); - if (r < 0) - return bus_log_parse_error(r); - - while ((r = sd_bus_message_enter_container(reply, 'r', "stiiay")) > 0) { - char *canonical; - uint64_t flags; - _cleanup_free_ char *pretty = NULL; - int ifindex, family; - union in_addr_union a; - - r = sd_bus_message_read(reply, "st", &canonical, &flags); - if (r < 0) - return bus_log_parse_error(r); - - r = sd_bus_message_read(reply, "i", &ifindex); - if (r < 0) - return bus_log_parse_error(r); - - sd_bus_error_free(&error); - r = bus_message_read_in_addr_auto(reply, &error, &family, &a); - if (r < 0) - return log_error_errno( - r, - "systemd-resolved returned invalid result: %s", - bus_error_message(&error, r)); - - r = sd_bus_message_exit_container(reply); - if (r < 0) - return bus_log_parse_error(r); - - r = in_addr_ifindex_to_string(family, &a, ifindex, &pretty); - if (r < 0) - return log_error_errno(r, "Failed to print address: %m"); - - r = table_add_many( - table, - TABLE_STRING, - canonical, - TABLE_STRING, - pretty, - TABLE_STRING, - resolve_flags_to_string(flags)); - if (r < 0) - return table_log_add_error(r); - } - - r = sd_bus_message_exit_container(reply); - if (r < 0) - return bus_log_parse_error(r); - - r = table_print(table, NULL); - if (r < 0) - return table_log_print_error(r); - - return 0; -} - static void help_protocol_types(void) { if (arg_legend) puts("Known protocol types:"); @@ -2693,7 +2609,6 @@ static int native_help(void) { " nta [LINK [DOMAIN...]] Get/set per-interface DNSSEC NTA\n" " revert LINK Revert per-interface configuration\n" " log-level [LEVEL] Get/set logging threshold for systemd-resolved\n" - " show-multicast Show domain names discovered via LLMNR/mDNS\n" "\nOptions:\n" " -h --help Show this help\n" " --version Show package version\n" @@ -3237,7 +3152,7 @@ static int native_parse_argv(int argc, char *argv[]) { } static int native_main(int argc, char *argv[], sd_bus *bus) { - /* clang-format off */ + static const Verb verbs[] = { { "help", VERB_ANY, VERB_ANY, 0, verb_help }, { "status", VERB_ANY, VERB_ANY, VERB_DEFAULT, verb_status }, @@ -3259,10 +3174,8 @@ static int native_main(int argc, char *argv[], sd_bus *bus) { { "nta", VERB_ANY, VERB_ANY, 0, verb_nta }, { "revert", VERB_ANY, 2, 0, verb_revert_link }, { "log-level", VERB_ANY, 2, 0, verb_log_level }, - { "show-multicast", VERB_ANY, VERB_ANY, 0, verb_show_multicast }, {} }; - /* clang-format on */ return dispatch_verb(argc, argv, verbs, bus); } diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c index 49e23ae450..dd27c50b49 100644 --- a/src/resolve/resolved-bus.c +++ b/src/resolve/resolved-bus.c @@ -132,17 +132,15 @@ static int reply_query_state(DnsQuery *q) { } } -static int append_address(sd_bus_message *reply, DnsResourceRecord *rr, int ifindex, bool is_container) { +static int append_address(sd_bus_message *reply, DnsResourceRecord *rr, int ifindex) { int r; assert(reply); assert(rr); - if (is_container) { - r = sd_bus_message_open_container(reply, 'r', "iiay"); - if (r < 0) - return r; - } + r = sd_bus_message_open_container(reply, 'r', "iiay"); + if (r < 0) + return r; r = sd_bus_message_append(reply, "i", ifindex); if (r < 0) @@ -167,11 +165,9 @@ static int append_address(sd_bus_message *reply, DnsResourceRecord *rr, int ifin if (r < 0) return r; - if (is_container) { - r = sd_bus_message_close_container(reply); - if (r < 0) - return r; - } + r = sd_bus_message_close_container(reply); + if (r < 0) + return r; return 0; } @@ -220,7 +216,7 @@ static void bus_method_resolve_hostname_complete(DnsQuery *q) { if (r == 0) continue; - r = append_address(reply, rr, ifindex, true); + r = append_address(reply, rr, ifindex); if (r < 0) goto finish; @@ -855,7 +851,7 @@ static int append_srv(DnsQuery *q, sd_bus_message *reply, DnsResourceRecord *rr) if (r == 0) continue; - r = append_address(reply, zz, ifindex, true); + r = append_address(reply, zz, ifindex); if (r < 0) return r; } @@ -2004,76 +2000,6 @@ static int bus_method_unregister_service(sd_bus_message *message, void *userdata return call_dnssd_method(m, message, bus_dnssd_method_unregister, error); } -static int bus_method_get_multicast_hosts(sd_bus_message *message, void *userdata, sd_bus_error *error) { - _cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL; - DnsScope *s; - Manager *m = userdata; - int r; - - assert(message); - assert(m); - - r = sd_bus_message_new_method_return(message, &reply); - if (r < 0) - return r; - - r = sd_bus_message_open_container(reply, 'a', "(stiiay)"); - if (r < 0) - return r; - - LIST_FOREACH(scopes, s, m->dns_scopes) { - _cleanup_(dns_answer_unrefp) DnsAnswer *answer = NULL; - DnsResourceRecord *rr; - DnsAnswerFlags flags; - int ifindex; - - if (s->protocol == DNS_PROTOCOL_DNS) - continue; - - r = dns_cache_dump_to_answer(&s->cache, &answer); - if (r < 0) - return r; - if (r == 0) - continue; - - DNS_ANSWER_FOREACH_FULL(rr, ifindex, flags, answer) { - _cleanup_free_ char *normalized = NULL; - bool authenticated = FLAGS_SET(flags, DNS_ANSWER_AUTHENTICATED); - - r = dns_name_normalize(dns_resource_key_name(rr->key), 0, &normalized); - if (r < 0) - return r; - - r = sd_bus_message_open_container(reply, 'r', "stiiay"); - if (r < 0) - return r; - - r = sd_bus_message_append( - reply, - "st", - normalized, - SD_RESOLVED_FLAGS_MAKE(s->protocol, s->family, authenticated)); - if (r < 0) - return r; - - r = append_address(reply, rr, ifindex, false); - if (r < 0) - return r; - - r = sd_bus_message_close_container(reply); - if (r < 0) - return r; - } - } - - r = sd_bus_message_close_container(reply); - if (r < 0) - return r; - - return sd_bus_reply(message, reply); -} - -/* clang-format off */ static const sd_bus_vtable resolve_vtable[] = { SD_BUS_VTABLE_START(0), SD_BUS_PROPERTY("LLMNRHostname", "s", NULL, offsetof(Manager, llmnr_hostname), SD_BUS_VTABLE_PROPERTY_EMITS_CHANGE), @@ -2212,14 +2138,9 @@ static const sd_bus_vtable resolve_vtable[] = { SD_BUS_NO_RESULT, bus_method_reset_server_features, SD_BUS_VTABLE_UNPRIVILEGED), - SD_BUS_METHOD_WITH_ARGS("GetMulticastHosts", - SD_BUS_NO_ARGS, - SD_BUS_RESULT("a(stiiay)", addresses), - bus_method_get_multicast_hosts, - SD_BUS_VTABLE_UNPRIVILEGED), + SD_BUS_VTABLE_END, }; -/* clang-format on */ const BusObjectImplementation manager_object = { "/org/freedesktop/resolve1", diff --git a/src/resolve/resolved-dns-cache.c b/src/resolve/resolved-dns-cache.c index e199e8f00c..75f1ccb649 100644 --- a/src/resolve/resolved-dns-cache.c +++ b/src/resolve/resolved-dns-cache.c @@ -1066,55 +1066,7 @@ int dns_cache_export_shared_to_packet(DnsCache *cache, DnsPacket *p) { return 0; } -int dns_cache_dump_to_answer(DnsCache *cache, DnsAnswer **ret) { - _cleanup_(dns_answer_unrefp) DnsAnswer *answer = NULL; - DnsCacheItem *i; - size_t n = 0; - int r; - - assert(cache); - assert(ret); - - HASHMAP_FOREACH(i, cache->by_key) { - DnsCacheItem *j; - - LIST_FOREACH(by_key, j, i) { - if (!j->rr) - continue; - - n++; - } - } - - if (n == 0) { - *ret = NULL; - return 0; - } - - answer = dns_answer_new(n); - if (!answer) - return -ENOMEM; - - HASHMAP_FOREACH(i, cache->by_key) { - DnsCacheItem *j; - - LIST_FOREACH(by_key, j, i) { - if (!j->rr) - continue; - - r = dns_answer_add( - answer, j->rr, j->ifindex, j->authenticated ? DNS_ANSWER_AUTHENTICATED : 0); - if (r < 0) - return r; - } - } - - *ret = TAKE_PTR(answer); - - return n; -} - -void dns_cache_dump_to_file(DnsCache *cache, FILE *f) { +void dns_cache_dump(DnsCache *cache, FILE *f) { DnsCacheItem *i; if (!cache) diff --git a/src/resolve/resolved-dns-cache.h b/src/resolve/resolved-dns-cache.h index 6de44cfd05..4ab213dc9c 100644 --- a/src/resolve/resolved-dns-cache.h +++ b/src/resolve/resolved-dns-cache.h @@ -27,8 +27,7 @@ int dns_cache_lookup(DnsCache *c, DnsResourceKey *key, bool clamp_ttl, int *rcod int dns_cache_check_conflicts(DnsCache *cache, DnsResourceRecord *rr, int owner_family, const union in_addr_union *owner_address); -void dns_cache_dump_to_file(DnsCache *cache, FILE *f); -int dns_cache_dump_to_answer(DnsCache *cache, DnsAnswer **answer); +void dns_cache_dump(DnsCache *cache, FILE *f); bool dns_cache_is_empty(DnsCache *cache); unsigned dns_cache_size(DnsCache *cache); diff --git a/src/resolve/resolved-dns-scope.c b/src/resolve/resolved-dns-scope.c index d27a19145f..d77e81ae39 100644 --- a/src/resolve/resolved-dns-scope.c +++ b/src/resolve/resolved-dns-scope.c @@ -1159,7 +1159,7 @@ void dns_scope_dump(DnsScope *s, FILE *f) { if (!dns_cache_is_empty(&s->cache)) { fputs("CACHE:\n", f); - dns_cache_dump_to_file(&s->cache, f); + dns_cache_dump(&s->cache, f); } } -- cgit v1.2.1