]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolve: add all protocol modes to DNSConfiguration
authorNick Rosbrook <enr0n@ubuntu.com>
Fri, 10 Oct 2025 19:56:34 +0000 (15:56 -0400)
committerNick Rosbrook <enr0n@ubuntu.com>
Thu, 6 Nov 2025 10:17:59 +0000 (05:17 -0500)
This is one of several commits to expand the DNSConfiguration varlink
type to include the necessary information for resolvectl status output.

src/resolve/resolved-manager.c
src/shared/varlink-io.systemd.Resolve.Monitor.c

index 36c78eaf0489425dbb6fc01611bb46e7e833805f..b3af9ce4e32b9fbc34f4e925d1443a832417b6af 100644 (file)
@@ -2050,6 +2050,10 @@ static int dns_configuration_json_append(
                 DnsSearchDomain *search_domains,
                 Set *negative_trust_anchors,
                 Set *dns_scopes,
+                DnssecMode dnssec_mode,
+                DnsOverTlsMode dns_over_tls_mode,
+                ResolveSupport llmnr_support,
+                ResolveSupport mdns_support,
                 sd_json_variant **configuration) {
 
         _cleanup_(sd_json_variant_unrefp) sd_json_variant *dns_servers_json = NULL,
@@ -2138,6 +2142,10 @@ static int dns_configuration_json_append(
                         SD_JSON_BUILD_PAIR_CONDITION(!set_isempty(negative_trust_anchors),
                                                      "negativeTrustAnchors",
                                                      JSON_BUILD_STRING_SET(negative_trust_anchors)),
+                        JSON_BUILD_PAIR_STRING_NON_EMPTY("dnssec", dnssec_mode_to_string(dnssec_mode)),
+                        JSON_BUILD_PAIR_STRING_NON_EMPTY("dnsOverTLS", dns_over_tls_mode_to_string(dns_over_tls_mode)),
+                        JSON_BUILD_PAIR_STRING_NON_EMPTY("llmnr", resolve_support_to_string(llmnr_support)),
+                        JSON_BUILD_PAIR_STRING_NON_EMPTY("mDNS", resolve_support_to_string(mdns_support)),
                         JSON_BUILD_PAIR_VARIANT_NON_NULL("scopes", scopes_json));
 }
 
@@ -2162,6 +2170,10 @@ static int global_dns_configuration_json_append(Manager *m, sd_json_variant **co
                         m->search_domains,
                         m->trust_anchor.negative_by_name,
                         scopes,
+                        manager_get_dnssec_mode(m),
+                        manager_get_dns_over_tls_mode(m),
+                        m->llmnr_support,
+                        m->mdns_support,
                         configuration);
 }
 
@@ -2212,6 +2224,10 @@ static int link_dns_configuration_json_append(Link *l, sd_json_variant **configu
                         l->search_domains,
                         l->dnssec_negative_trust_anchors,
                         scopes,
+                        link_get_dnssec_mode(l),
+                        link_get_dns_over_tls_mode(l),
+                        link_get_llmnr_support(l),
+                        link_get_mdns_support(l),
                         configuration);
 }
 
@@ -2236,6 +2252,10 @@ static int delegate_dns_configuration_json_append(DnsDelegate *d, sd_json_varian
                         d->search_domains,
                         /* negative_trust_anchors = */ NULL,
                         scopes,
+                        /* dnssec_mode = */ _DNSSEC_MODE_INVALID,
+                        /* dns_over_tls_mode = */ _DNS_OVER_TLS_MODE_INVALID,
+                        /* llmnr_support = */ _RESOLVE_SUPPORT_INVALID,
+                        /* mdns_support = */ _RESOLVE_SUPPORT_INVALID,
                         configuration);
 }
 
index df76510cf65dceed77c686dc4248b3bc23f64427..622975e5de7c34d809be9c120cbca4605a4f474b 100644 (file)
@@ -171,6 +171,14 @@ static SD_VARLINK_DEFINE_STRUCT_TYPE(
                 SD_VARLINK_DEFINE_FIELD_BY_TYPE(searchDomains, SearchDomain, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
                 SD_VARLINK_FIELD_COMMENT("Array of configured DNSSEC negative trust anchors."),
                 SD_VARLINK_DEFINE_FIELD(negativeTrustAnchors, SD_VARLINK_STRING, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("DNSSEC mode."),
+                SD_VARLINK_DEFINE_FIELD(dnssec, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("DNSOverTLS mode."),
+                SD_VARLINK_DEFINE_FIELD(dnsOverTLS, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("LLMNR support."),
+                SD_VARLINK_DEFINE_FIELD(llmnr, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
+                SD_VARLINK_FIELD_COMMENT("mDNS support."),
+                SD_VARLINK_DEFINE_FIELD(mDNS, SD_VARLINK_STRING, SD_VARLINK_NULLABLE),
                 SD_VARLINK_FIELD_COMMENT("Array of current DNS scopes."),
                 SD_VARLINK_DEFINE_FIELD_BY_TYPE(scopes, DNSScope, SD_VARLINK_ARRAY|SD_VARLINK_NULLABLE));