diff --git a/src/libsystemd-network/dns-resolver-internal.h b/src/libsystemd-network/dns-resolver-internal.h index 1e53df51cf..c8221421d1 100644 --- a/src/libsystemd-network/dns-resolver-internal.h +++ b/src/libsystemd-network/dns-resolver-internal.h @@ -6,25 +6,6 @@ #include "sd-forward.h" #include "socket-netlink.h" -/* https://www.iana.org/assignments/dns-svcb/dns-svcb.xhtml#dns-svcparamkeys */ -enum { - DNS_SVC_PARAM_KEY_MANDATORY = 0, /* RFC 9460 § 8 */ - DNS_SVC_PARAM_KEY_ALPN = 1, /* RFC 9460 § 7.1 */ - DNS_SVC_PARAM_KEY_NO_DEFAULT_ALPN = 2, /* RFC 9460 § 7.1 */ - DNS_SVC_PARAM_KEY_PORT = 3, /* RFC 9460 § 7.2 */ - DNS_SVC_PARAM_KEY_IPV4HINT = 4, /* RFC 9460 § 7.3 */ - DNS_SVC_PARAM_KEY_ECH = 5, /* RFC 9460 */ - DNS_SVC_PARAM_KEY_IPV6HINT = 6, /* RFC 9460 § 7.3 */ - DNS_SVC_PARAM_KEY_DOHPATH = 7, /* RFC 9461 */ - DNS_SVC_PARAM_KEY_OHTTP = 8, - _DNS_SVC_PARAM_KEY_MAX_DEFINED, - DNS_SVC_PARAM_KEY_INVALID = 65535 /* RFC 9460 */ -}; - -const char* dns_svc_param_key_to_string(int i) _const_; -const char* format_dns_svc_param_key(uint16_t i, char buf[static DECIMAL_STR_MAX(uint16_t)+3]); -#define FORMAT_DNS_SVC_PARAM_KEY(i) format_dns_svc_param_key(i, (char [DECIMAL_STR_MAX(uint16_t)+3]) {}) - /* Represents a "designated resolver" */ /* typedef struct sd_dns_resolver sd_dns_resolver; */ typedef struct sd_dns_resolver { diff --git a/src/libsystemd-network/ndisc-option.c b/src/libsystemd-network/ndisc-option.c index d66f3d235e..c61543fef8 100644 --- a/src/libsystemd-network/ndisc-option.c +++ b/src/libsystemd-network/ndisc-option.c @@ -8,6 +8,7 @@ #include "alloc-util.h" #include "dns-def.h" #include "dns-domain.h" +#include "dns-packet.h" #include "dns-resolver-internal.h" #include "ether-addr-util.h" #include "hash-funcs.h" diff --git a/src/libsystemd-network/sd-dns-resolver.c b/src/libsystemd-network/sd-dns-resolver.c index e7f69da202..f2283f0047 100644 --- a/src/libsystemd-network/sd-dns-resolver.c +++ b/src/libsystemd-network/sd-dns-resolver.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #include "alloc-util.h" +#include "dns-packet.h" #include "dns-resolver-internal.h" #include "errno-util.h" #include "siphash24.h" @@ -154,29 +155,6 @@ void siphash24_compress_resolver(const sd_dns_resolver *res, struct siphash *sta siphash24_compress_typesafe(*addr, state); } -static const char* const dns_svc_param_key_table[_DNS_SVC_PARAM_KEY_MAX_DEFINED] = { - [DNS_SVC_PARAM_KEY_MANDATORY] = "mandatory", - [DNS_SVC_PARAM_KEY_ALPN] = "alpn", - [DNS_SVC_PARAM_KEY_NO_DEFAULT_ALPN] = "no-default-alpn", - [DNS_SVC_PARAM_KEY_PORT] = "port", - [DNS_SVC_PARAM_KEY_IPV4HINT] = "ipv4hint", - [DNS_SVC_PARAM_KEY_ECH] = "ech", - [DNS_SVC_PARAM_KEY_IPV6HINT] = "ipv6hint", - [DNS_SVC_PARAM_KEY_DOHPATH] = "dohpath", - [DNS_SVC_PARAM_KEY_OHTTP] = "ohttp", -}; -DEFINE_STRING_TABLE_LOOKUP_TO_STRING(dns_svc_param_key, int); - -const char* format_dns_svc_param_key(uint16_t i, char buf[static DECIMAL_STR_MAX(uint16_t)+3]) { - assert(buf); - - const char *p = dns_svc_param_key_to_string(i); - if (p) - return p; - - return snprintf_ok(buf, DECIMAL_STR_MAX(uint16_t)+3, "key%i", i); -} - int dns_resolver_transports_to_strv(sd_dns_alpn_flags transports, char ***ret) { _cleanup_strv_free_ char **ans = NULL; diff --git a/src/resolve/fuzz-dns-packet.c b/src/resolve/fuzz-dns-packet.c index 27a196cb8f..f696cb4cf9 100644 --- a/src/resolve/fuzz-dns-packet.c +++ b/src/resolve/fuzz-dns-packet.c @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "dns-packet.h" #include "fuzz.h" -#include "resolved-dns-packet.h" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { _cleanup_(dns_packet_unrefp) DnsPacket *p = NULL; diff --git a/src/resolve/fuzz-resource-record.c b/src/resolve/fuzz-resource-record.c index 8d0817493d..d3469f6d16 100644 --- a/src/resolve/fuzz-resource-record.c +++ b/src/resolve/fuzz-resource-record.c @@ -2,10 +2,10 @@ #include "sd-json.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "fuzz.h" #include "memstream-util.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "string-util.h" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { diff --git a/src/resolve/meson.build b/src/resolve/meson.build index 8dc3bb4570..6944f6eb7f 100644 --- a/src/resolve/meson.build +++ b/src/resolve/meson.build @@ -8,19 +8,14 @@ systemd_resolved_sources = files( 'resolved.c', ) systemd_resolved_extract_sources = files( - 'dns-type.c', 'resolved-bus.c', 'resolved-conf.c', - 'resolved-dns-answer.c', 'resolved-dns-browse-services.c', 'resolved-dns-cache.c', 'resolved-dns-delegate.c', 'resolved-dns-delegate-bus.c', 'resolved-dns-dnssec.c', - 'resolved-dns-packet.c', 'resolved-dns-query.c', - 'resolved-dns-question.c', - 'resolved-dns-rr.c', 'resolved-dns-scope.c', 'resolved-dns-search-domain.c', 'resolved-dns-server.c', @@ -46,38 +41,6 @@ systemd_resolved_extract_sources = files( ############################################################ -dns_type_list_txt = custom_target( - input : ['generate-dns_type-list.sed', 'dns-type.h'], - output : 'dns_type-list.txt', - command : [sed, '-n', '-r', '-f', '@INPUT0@', '@INPUT1@'], - capture : true) - -gperf_file = custom_target( - input : dns_type_list_txt, - output : 'dns_type-from-name.gperf', - command : [files('generate-dns_type-gperf.py'), - 'dns_type', - 'DNS_TYPE_', - '@INPUT@'], - capture : true) - -dns_type_from_name_inc = custom_target( - input : gperf_file, - output : 'dns_type-from-name.inc', - command : [gperf, - '-L', 'ANSI-C', '-t', '--ignore-case', - '-N', 'lookup_dns_type', - '-H', 'hash_dns_type_name', - '-p', '-C', - '@INPUT@'], - capture : true) - -dns_type_to_name_inc = custom_target( - input : ['dns_type-to-name.awk', dns_type_list_txt], - output : 'dns_type-to-name.inc', - command : [awk, '-f', '@INPUT0@', '@INPUT1@'], - capture : true) - resolved_gperf_c = custom_target( input : 'resolved-gperf.gperf', output : 'resolved-gperf.c', @@ -93,8 +56,8 @@ resolved_dns_delegate_gperf_c = custom_target( output : 'resolved-dns-delegate-gperf.c', command : [gperf, '@INPUT@', '--output-file', '@OUTPUT@']) -generated_sources += [dns_type_from_name_inc, dns_type_to_name_inc, resolved_gperf_c, resolved_dnssd_gperf_c, resolved_dns_delegate_gperf_c] -systemd_resolved_extract_sources += [dns_type_from_name_inc, dns_type_to_name_inc, resolved_gperf_c, resolved_dnssd_gperf_c, resolved_dns_delegate_gperf_c] +generated_sources += [resolved_gperf_c, resolved_dnssd_gperf_c, resolved_dns_delegate_gperf_c] +systemd_resolved_extract_sources += [resolved_gperf_c, resolved_dnssd_gperf_c, resolved_dns_delegate_gperf_c] if conf.get('ENABLE_DNS_OVER_TLS') == 1 systemd_resolved_extract_sources += files( diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c index 7f9cc33436..8f8124d5bf 100644 --- a/src/resolve/resolvectl.c +++ b/src/resolve/resolvectl.c @@ -22,6 +22,8 @@ #include "bus-message-util.h" #include "bus-util.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "errno-list.h" #include "errno-util.h" #include "escape.h" @@ -42,8 +44,6 @@ #include "resolve-util.h" #include "resolvectl.h" #include "resolved-def.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "resolved-util.h" #include "socket-netlink.h" #include "sort-util.h" diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c index 7a6f1c55b0..53d2de274f 100644 --- a/src/resolve/resolved-bus.c +++ b/src/resolve/resolved-bus.c @@ -11,20 +11,20 @@ #include "bus-object.h" #include "bus-polkit.h" #include "bus-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "format-util.h" #include "path-util.h" #include "resolve-util.h" #include "resolved-bus.h" #include "resolved-def.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-delegate.h" #include "resolved-dns-delegate-bus.h" +#include "resolved-dns-delegate.h" #include "resolved-dns-dnssec.h" -#include "resolved-dns-packet.h" #include "resolved-dns-query.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-server.h" @@ -32,10 +32,10 @@ #include "resolved-dns-stub.h" #include "resolved-dns-synthesize.h" #include "resolved-dns-transaction.h" -#include "resolved-dnssd.h" #include "resolved-dnssd-bus.h" -#include "resolved-link.h" +#include "resolved-dnssd.h" #include "resolved-link-bus.h" +#include "resolved-link.h" #include "resolved-manager.h" #include "resolved-resolv-conf.h" #include "set.h" diff --git a/src/resolve/resolved-dns-browse-services.c b/src/resolve/resolved-dns-browse-services.c index e763c46c1a..3fd2bd2f11 100644 --- a/src/resolve/resolved-dns-browse-services.c +++ b/src/resolve/resolved-dns-browse-services.c @@ -2,15 +2,15 @@ #include "af-list.h" #include "alloc-util.h" -#include "event-util.h" #include "dns-domain.h" +#include "dns-question.h" +#include "dns-rr.h" +#include "event-util.h" #include "log.h" #include "random-util.h" #include "resolved-dns-browse-services.h" #include "resolved-dns-cache.h" -#include "resolved-dns-question.h" #include "resolved-dns-query.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-manager.h" #include "string-table.h" diff --git a/src/resolve/resolved-dns-browse-services.h b/src/resolve/resolved-dns-browse-services.h index 0262cee714..87e68b7a21 100644 --- a/src/resolve/resolved-dns-browse-services.h +++ b/src/resolve/resolved-dns-browse-services.h @@ -2,9 +2,10 @@ #pragma once #include "sd-varlink.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" + +#include "dns-answer.h" +#include "dns-question.h" +#include "dns-rr.h" typedef struct DnsServiceBrowser DnsServiceBrowser; typedef struct DnssdDiscoveredService DnssdDiscoveredService; diff --git a/src/resolve/resolved-dns-cache.c b/src/resolve/resolved-dns-cache.c index 5429cefdcd..5540ce5c05 100644 --- a/src/resolve/resolved-dns-cache.c +++ b/src/resolve/resolved-dns-cache.c @@ -5,16 +5,16 @@ #include "af-list.h" #include "alloc-util.h" #include "bitmap.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "format-ifname.h" #include "log.h" #include "prioq.h" #include "resolve-util.h" -#include "resolved-dns-answer.h" #include "resolved-dns-cache.h" #include "resolved-dns-dnssec.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "string-util.h" #include "time-util.h" diff --git a/src/resolve/resolved-dns-dnssec.c b/src/resolve/resolved-dns-dnssec.c index 321aa0816e..537370f0a9 100644 --- a/src/resolve/resolved-dns-dnssec.c +++ b/src/resolve/resolved-dns-dnssec.c @@ -2,16 +2,16 @@ #include "alloc-util.h" #include "bitmap.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-rr.h" #include "dns-type.h" #include "hexdecoct.h" #include "log.h" #include "memory-util.h" #include "memstream-util.h" #include "openssl-util.h" -#include "resolved-dns-answer.h" #include "resolved-dns-dnssec.h" -#include "resolved-dns-rr.h" #include "sort-util.h" #include "string-table.h" #include "string-util.h" @@ -45,32 +45,6 @@ REENABLE_WARNING; * Normal RR → RRSIG/DNSKEY+ → DS → RRSIG/DNSKEY+ → DS → ... → DS → RRSIG/DNSKEY+ → DS */ -uint16_t dnssec_keytag(DnsResourceRecord *dnskey, bool mask_revoke) { - const uint8_t *p; - uint32_t sum, f; - - /* The algorithm from RFC 4034, Appendix B. */ - - assert(dnskey); - assert(dnskey->key->type == DNS_TYPE_DNSKEY); - - f = (uint32_t) dnskey->dnskey.flags; - - if (mask_revoke) - f &= ~DNSKEY_FLAG_REVOKE; - - sum = f + ((((uint32_t) dnskey->dnskey.protocol) << 8) + (uint32_t) dnskey->dnskey.algorithm); - - p = dnskey->dnskey.key; - - for (size_t i = 0; i < dnskey->dnskey.key_size; i++) - sum += (i & 1) == 0 ? (uint32_t) p[i] << 8 : (uint32_t) p[i]; - - sum += (sum >> 16) & UINT32_C(0xFFFF); - - return sum & UINT32_C(0xFFFF); -} - #if HAVE_OPENSSL static int rr_compare(DnsResourceRecord * const *a, DnsResourceRecord * const *b) { diff --git a/src/resolve/resolved-dns-dnssec.h b/src/resolve/resolved-dns-dnssec.h index cd2e92f20e..0139e7f700 100644 --- a/src/resolve/resolved-dns-dnssec.h +++ b/src/resolve/resolved-dns-dnssec.h @@ -59,8 +59,6 @@ int dnssec_verify_dnskey_by_ds_search(DnsResourceRecord *dnskey, DnsAnswer *vali int dnssec_has_rrsig(DnsAnswer *a, const DnsResourceKey *key); -uint16_t dnssec_keytag(DnsResourceRecord *dnskey, bool mask_revoke); - int dnssec_nsec3_hash(DnsResourceRecord *nsec3, const char *name, void *ret); typedef enum DnssecNsecResult { diff --git a/src/resolve/resolved-dns-query.c b/src/resolve/resolved-dns-query.c index 4e11ad87bf..79a008bfb7 100644 --- a/src/resolve/resolved-dns-query.c +++ b/src/resolve/resolved-dns-query.c @@ -4,16 +4,16 @@ #include "sd-varlink.h" #include "alloc-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" #include "event-util.h" #include "glyph-util.h" #include "log.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" #include "resolved-dns-query.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-synthesize.h" diff --git a/src/resolve/resolved-dns-query.h b/src/resolve/resolved-dns-query.h index 9473fb8182..d3bed93084 100644 --- a/src/resolve/resolved-dns-query.h +++ b/src/resolve/resolved-dns-query.h @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include "dns-packet.h" #include "in-addr-util.h" #include "list.h" #include "resolved-dns-browse-services.h" -#include "resolved-dns-packet.h" #include "resolved-dns-transaction.h" #include "resolved-forward.h" diff --git a/src/resolve/resolved-dns-scope.c b/src/resolve/resolved-dns-scope.c index a81f9f1936..6f8d0fdcfe 100644 --- a/src/resolve/resolved-dns-scope.c +++ b/src/resolve/resolved-dns-scope.c @@ -7,20 +7,20 @@ #include "af-list.h" #include "alloc-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" #include "errno-util.h" #include "fd-util.h" #include "hostname-util.h" #include "log.h" #include "random-util.h" -#include "resolved-dns-answer.h" #include "resolved-dns-browse-services.h" #include "resolved-dns-delegate.h" -#include "resolved-dns-packet.h" #include "resolved-dns-query.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-server.h" diff --git a/src/resolve/resolved-dns-scope.h b/src/resolve/resolved-dns-scope.h index 3ecc2183df..16c28eb9a3 100644 --- a/src/resolve/resolved-dns-scope.h +++ b/src/resolve/resolved-dns-scope.h @@ -2,11 +2,11 @@ #pragma once #include "dns-def.h" +#include "dns-packet.h" #include "list.h" #include "ratelimit.h" #include "resolve-util.h" #include "resolved-dns-cache.h" -#include "resolved-dns-packet.h" #include "resolved-dns-zone.h" #include "resolved-forward.h" diff --git a/src/resolve/resolved-dns-server.c b/src/resolve/resolved-dns-server.c index a177c323e2..787ffccc78 100644 --- a/src/resolve/resolved-dns-server.c +++ b/src/resolve/resolved-dns-server.c @@ -5,6 +5,7 @@ #include "alloc-util.h" #include "dns-domain.h" +#include "dns-packet.h" #include "errno-util.h" #include "extract-word.h" #include "fd-util.h" @@ -13,7 +14,6 @@ #include "resolved-bus.h" #include "resolved-dns-cache.h" #include "resolved-dns-delegate.h" -#include "resolved-dns-packet.h" #include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-server.h" diff --git a/src/resolve/resolved-dns-stream.c b/src/resolve/resolved-dns-stream.c index 60d2b831c7..b4591365fd 100644 --- a/src/resolve/resolved-dns-stream.c +++ b/src/resolve/resolved-dns-stream.c @@ -5,13 +5,13 @@ #include "sd-event.h" #include "alloc-util.h" +#include "dns-packet.h" #include "errno-util.h" #include "fd-util.h" #include "iovec-util.h" #include "log.h" #include "missing-network.h" #include "ordered-set.h" -#include "resolved-dns-packet.h" #include "resolved-dns-server.h" #include "resolved-dns-stream.h" #include "resolved-manager.h" diff --git a/src/resolve/resolved-dns-stream.h b/src/resolve/resolved-dns-stream.h index 83bbd11eab..60cae3f51f 100644 --- a/src/resolve/resolved-dns-stream.h +++ b/src/resolve/resolved-dns-stream.h @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once +#include "dns-packet.h" #include "list.h" -#include "resolved-dns-packet.h" #include "resolved-dnstls.h" #include "resolved-forward.h" #include "socket-util.h" diff --git a/src/resolve/resolved-dns-stub.c b/src/resolve/resolved-dns-stub.c index 655a6c5da1..b2cfa4a998 100644 --- a/src/resolve/resolved-dns-stub.c +++ b/src/resolve/resolved-dns-stub.c @@ -7,17 +7,17 @@ #include "alloc-util.h" #include "capability-util.h" +#include "dns-answer.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" #include "errno-util.h" #include "fd-util.h" #include "log.h" #include "missing-network.h" #include "resolve-util.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" #include "resolved-dns-query.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-stream.h" #include "resolved-dns-stub.h" #include "resolved-dns-transaction.h" diff --git a/src/resolve/resolved-dns-synthesize.c b/src/resolve/resolved-dns-synthesize.c index 882bacc97a..8ce9204e0c 100644 --- a/src/resolve/resolved-dns-synthesize.c +++ b/src/resolve/resolved-dns-synthesize.c @@ -1,7 +1,11 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #include "alloc-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" #include "env-util.h" #include "hostname-util.h" @@ -9,10 +13,6 @@ #include "log.h" #include "missing-network.h" #include "resolved-def.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-synthesize.h" #include "resolved-manager.h" #include "socket-util.h" diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c index 05088082fd..973ea08f43 100644 --- a/src/resolve/resolved-dns-transaction.c +++ b/src/resolve/resolved-dns-transaction.c @@ -5,19 +5,19 @@ #include "af-list.h" #include "alloc-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "errno-list.h" #include "errno-util.h" #include "fd-util.h" #include "glyph-util.h" #include "log.h" #include "random-util.h" -#include "resolved-dns-answer.h" #include "resolved-dns-cache.h" -#include "resolved-dns-packet.h" #include "resolved-dns-query.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-server.h" #include "resolved-dns-stream.h" diff --git a/src/resolve/resolved-dns-trust-anchor.c b/src/resolve/resolved-dns-trust-anchor.c index 3c4d7efdc5..e29a9d2325 100644 --- a/src/resolve/resolved-dns-trust-anchor.c +++ b/src/resolve/resolved-dns-trust-anchor.c @@ -5,7 +5,9 @@ #include "alloc-util.h" #include "conf-files.h" #include "constants.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-rr.h" #include "extract-word.h" #include "fd-util.h" #include "fileio.h" @@ -13,9 +15,7 @@ #include "log.h" #include "nulstr-util.h" #include "parse-util.h" -#include "resolved-dns-answer.h" #include "resolved-dns-dnssec.h" -#include "resolved-dns-rr.h" #include "resolved-dns-trust-anchor.h" #include "set.h" #include "string-util.h" diff --git a/src/resolve/resolved-dns-zone.c b/src/resolve/resolved-dns-zone.c index bb30c5a6f7..c005342958 100644 --- a/src/resolve/resolved-dns-zone.c +++ b/src/resolve/resolved-dns-zone.c @@ -3,12 +3,12 @@ #include #include "alloc-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "list.h" #include "log.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-transaction.h" #include "resolved-dns-zone.h" diff --git a/src/resolve/resolved-dnssd.c b/src/resolve/resolved-dnssd.c index 93168c8c3d..1c090f9b61 100644 --- a/src/resolve/resolved-dnssd.c +++ b/src/resolve/resolved-dnssd.c @@ -7,12 +7,12 @@ #include "conf-parser.h" #include "constants.h" #include "dns-domain.h" +#include "dns-rr.h" #include "extract-word.h" #include "hashmap.h" #include "hexdecoct.h" #include "path-util.h" #include "resolved-conf.h" -#include "resolved-dns-rr.h" #include "resolved-dns-zone.h" #include "resolved-dnssd.h" #include "resolved-manager.h" diff --git a/src/resolve/resolved-etc-hosts.c b/src/resolve/resolved-etc-hosts.c index 0ef33651f1..e9100de522 100644 --- a/src/resolve/resolved-etc-hosts.c +++ b/src/resolve/resolved-etc-hosts.c @@ -4,15 +4,15 @@ #include "sd-event.h" #include "alloc-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-question.h" +#include "dns-rr.h" #include "extract-word.h" #include "fd-util.h" #include "fileio.h" #include "hostname-util.h" #include "log.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-etc-hosts.h" #include "resolved-manager.h" #include "set.h" diff --git a/src/resolve/resolved-link.c b/src/resolve/resolved-link.c index e3640aa9c3..59b6dc942b 100644 --- a/src/resolve/resolved-link.c +++ b/src/resolve/resolved-link.c @@ -8,6 +8,8 @@ #include "alloc-util.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "env-file.h" #include "extract-word.h" #include "fd-util.h" @@ -18,8 +20,6 @@ #include "netif-util.h" #include "parse-util.h" #include "resolved-dns-browse-services.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-server.h" diff --git a/src/resolve/resolved-llmnr.c b/src/resolve/resolved-llmnr.c index 812ef947f6..13e4382b4a 100644 --- a/src/resolve/resolved-llmnr.c +++ b/src/resolve/resolved-llmnr.c @@ -5,11 +5,11 @@ #include "sd-event.h" +#include "dns-packet.h" #include "errno-util.h" #include "fd-util.h" #include "hashmap.h" #include "log.h" -#include "resolved-dns-packet.h" #include "resolved-dns-scope.h" #include "resolved-dns-transaction.h" #include "resolved-link.h" diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c index d58026f48d..7e6c074c11 100644 --- a/src/resolve/resolved-manager.c +++ b/src/resolve/resolved-manager.c @@ -14,7 +14,11 @@ #include "alloc-util.h" #include "daemon-util.h" #include "dirent-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "errno-util.h" #include "event-util.h" #include "fd-util.h" @@ -30,12 +34,8 @@ #include "random-util.h" #include "resolved-bus.h" #include "resolved-conf.h" -#include "resolved-dns-answer.h" #include "resolved-dns-delegate.h" -#include "resolved-dns-packet.h" #include "resolved-dns-query.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-server.h" diff --git a/src/resolve/resolved-mdns.c b/src/resolve/resolved-mdns.c index 98539eac6f..fb20ba9cd0 100644 --- a/src/resolve/resolved-mdns.c +++ b/src/resolve/resolved-mdns.c @@ -5,13 +5,13 @@ #include "sd-event.h" #include "alloc-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "fd-util.h" #include "log.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-transaction.h" #include "resolved-link.h" diff --git a/src/resolve/resolved-varlink.c b/src/resolve/resolved-varlink.c index af469bde90..0a73e41961 100644 --- a/src/resolve/resolved-varlink.c +++ b/src/resolve/resolved-varlink.c @@ -4,19 +4,19 @@ #include "alloc-util.h" #include "bus-polkit.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" #include "errno-util.h" #include "in-addr-util.h" #include "iovec-util.h" #include "json-util.h" -#include "resolved-dns-answer.h" #include "resolved-dns-browse-services.h" #include "resolved-dns-dnssec.h" -#include "resolved-dns-packet.h" #include "resolved-dns-query.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-server.h" diff --git a/src/resolve/test-dns-answer.c b/src/resolve/test-dns-answer.c index 06dec47ee0..242309069d 100644 --- a/src/resolve/test-dns-answer.c +++ b/src/resolve/test-dns-answer.c @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "dns-answer.h" +#include "dns-rr.h" #include "dns-type.h" #include "memstream-util.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-rr.h" #include "strv.h" #include "tests.h" diff --git a/src/resolve/test-dns-cache.c b/src/resolve/test-dns-cache.c index a60daab5c6..705878422e 100644 --- a/src/resolve/test-dns-cache.c +++ b/src/resolve/test-dns-cache.c @@ -6,16 +6,16 @@ #include "sd-json.h" +#include "dns-answer.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "dns-type.h" #include "fd-util.h" #include "fileio.h" #include "resolve-util.h" #include "resolved-def.h" -#include "resolved-dns-answer.h" #include "resolved-dns-cache.h" #include "resolved-dns-dnssec.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "tests.h" #include "time-util.h" #include "tmpfile-util.h" diff --git a/src/resolve/test-dns-packet-append.c b/src/resolve/test-dns-packet-append.c index 99bf0b7615..eaffc57184 100644 --- a/src/resolve/test-dns-packet-append.c +++ b/src/resolve/test-dns-packet-append.c @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "dns-answer.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" #include "list.h" #include "log.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "tests.h" #define BIT_QR (1 << 7) diff --git a/src/resolve/test-dns-packet-extract.c b/src/resolve/test-dns-packet-extract.c index 9b67a6a93f..dfbfd832f2 100644 --- a/src/resolve/test-dns-packet-extract.c +++ b/src/resolve/test-dns-packet-extract.c @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "dns-answer.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "tests.h" #define BIT_QR (1 << 7) diff --git a/src/resolve/test-dns-packet.c b/src/resolve/test-dns-packet.c index 5e818106e8..d6be66c55b 100644 --- a/src/resolve/test-dns-packet.c +++ b/src/resolve/test-dns-packet.c @@ -3,11 +3,11 @@ #include "sd-id128.h" #include "alloc-util.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "fileio.h" #include "glob-util.h" #include "log.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "siphash24.h" #include "strv.h" #include "tests.h" diff --git a/src/resolve/test-dns-query.c b/src/resolve/test-dns-query.c index 3c0917332f..64114f5abc 100644 --- a/src/resolve/test-dns-query.c +++ b/src/resolve/test-dns-query.c @@ -2,11 +2,11 @@ #include "sd-event.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" +#include "dns-answer.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "resolved-dns-query.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-search-domain.h" #include "resolved-dns-server.h" diff --git a/src/resolve/test-dns-question.c b/src/resolve/test-dns-question.c index 303c300e0c..7cf58424de 100644 --- a/src/resolve/test-dns-question.c +++ b/src/resolve/test-dns-question.c @@ -1,10 +1,10 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" #include "in-addr-util.h" #include "memstream-util.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "tests.h" /* ================================================================ diff --git a/src/resolve/test-dns-rr.c b/src/resolve/test-dns-rr.c index a69c2120d1..c679e45bee 100644 --- a/src/resolve/test-dns-rr.c +++ b/src/resolve/test-dns-rr.c @@ -2,9 +2,9 @@ #include "sd-json.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "dns-type.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "tests.h" /* ================================================================ diff --git a/src/resolve/test-dns-synthesize.c b/src/resolve/test-dns-synthesize.c index 14f7a5156a..64b79df45e 100644 --- a/src/resolve/test-dns-synthesize.c +++ b/src/resolve/test-dns-synthesize.c @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" +#include "dns-answer.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "resolved-dns-synthesize.h" #include "resolved-manager.h" #include "tests.h" diff --git a/src/resolve/test-dns-zone.c b/src/resolve/test-dns-zone.c index 3f449cbfcf..b9ee18fd22 100644 --- a/src/resolve/test-dns-zone.c +++ b/src/resolve/test-dns-zone.c @@ -1,9 +1,9 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "dns-answer.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "dns-type.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "resolved-dns-scope.h" #include "resolved-dns-zone.h" #include "resolved-manager.h" diff --git a/src/resolve/test-dnssec.c b/src/resolve/test-dnssec.c index 32aaa4c0db..eaa4ef9959 100644 --- a/src/resolve/test-dnssec.c +++ b/src/resolve/test-dnssec.c @@ -5,10 +5,10 @@ #include "alloc-util.h" #include "bitmap.h" +#include "dns-answer.h" +#include "dns-rr.h" #include "hexdecoct.h" -#include "resolved-dns-answer.h" #include "resolved-dns-dnssec.h" -#include "resolved-dns-rr.h" #include "string-util.h" #include "tests.h" #include "time-util.h" diff --git a/src/resolve/test-resolve-tables.c b/src/resolve/test-resolve-tables.c index ec660379f4..15b9f4e11c 100644 --- a/src/resolve/test-resolve-tables.c +++ b/src/resolve/test-resolve-tables.c @@ -1,8 +1,8 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ +#include "dns-packet.h" #include "dns-type.h" #include "resolved-dns-dnssec.h" -#include "resolved-dns-packet.h" #include "test-tables.h" #include "tests.h" diff --git a/src/resolve/test-resolved-dummy-server.c b/src/resolve/test-resolved-dummy-server.c index 21556d57fa..6ba0391490 100644 --- a/src/resolve/test-resolved-dummy-server.c +++ b/src/resolve/test-resolved-dummy-server.c @@ -3,14 +3,14 @@ #include "sd-daemon.h" #include "sd-event.h" +#include "dns-packet.h" +#include "dns-question.h" #include "dns-type.h" #include "errno-util.h" #include "fd-util.h" #include "iovec-util.h" #include "log.h" #include "main-func.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-question.h" #include "resolved-manager.h" #include "socket-netlink.h" #include "socket-util.h" diff --git a/src/resolve/test-resolved-link.c b/src/resolve/test-resolved-link.c index e0cb6006ad..f3afe467d8 100644 --- a/src/resolve/test-resolved-link.c +++ b/src/resolve/test-resolved-link.c @@ -5,8 +5,8 @@ #include "sd-event.h" #include "sd-netlink.h" +#include "dns-packet.h" #include "netlink-internal.h" -#include "resolved-dns-packet.h" #include "resolved-dns-scope.h" #include "resolved-dns-server.h" #include "resolved-link.h" diff --git a/src/resolve/test-resolved-packet.c b/src/resolve/test-resolved-packet.c index b11358a7d7..1ce7aa65ad 100644 --- a/src/resolve/test-resolved-packet.c +++ b/src/resolve/test-resolved-packet.c @@ -2,11 +2,11 @@ #include "sd-json.h" +#include "dns-answer.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "hexdecoct.h" #include "log.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "tests.h" TEST(dns_packet_new) { diff --git a/src/resolve/test-resolved-stream.c b/src/resolve/test-resolved-stream.c index 82d8f29253..a952239d53 100644 --- a/src/resolve/test-resolved-stream.c +++ b/src/resolve/test-resolved-stream.c @@ -13,14 +13,14 @@ #include "sd-event.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "fd-util.h" #include "log.h" #include "path-util.h" #include "process-util.h" #include "random-util.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "resolved-dns-server.h" #include "resolved-dns-stream.h" #include "resolved-dnstls.h" diff --git a/src/resolve/resolved-dns-answer.c b/src/shared/dns-answer.c similarity index 99% rename from src/resolve/resolved-dns-answer.c rename to src/shared/dns-answer.c index 37e2ba1100..7ebbf8795d 100644 --- a/src/resolve/resolved-dns-answer.c +++ b/src/shared/dns-answer.c @@ -3,11 +3,11 @@ #include #include "alloc-util.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-rr.h" #include "log.h" #include "random-util.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-rr.h" #include "siphash24.h" #include "string-util.h" diff --git a/src/resolve/resolved-dns-answer.h b/src/shared/dns-answer.h similarity index 99% rename from src/resolve/resolved-dns-answer.h rename to src/shared/dns-answer.h index 5f4a54c556..059f896b86 100644 --- a/src/resolve/resolved-dns-answer.h +++ b/src/shared/dns-answer.h @@ -2,7 +2,7 @@ #pragma once #include "ordered-set.h" -#include "resolved-forward.h" +#include "shared-forward.h" /* A simple array of resource records. We keep track of the originating ifindex for each RR where that makes * sense, so that we can qualify A and AAAA RRs referring to a local link with the right ifindex. diff --git a/src/resolve/resolved-dns-packet.c b/src/shared/dns-packet.c similarity index 99% rename from src/resolve/resolved-dns-packet.c rename to src/shared/dns-packet.c index e091d4273b..4dba0983ab 100644 --- a/src/resolve/resolved-dns-packet.c +++ b/src/shared/dns-packet.c @@ -2,14 +2,14 @@ #include "alloc-util.h" #include "bitmap.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-question.h" +#include "dns-rr.h" #include "escape.h" #include "log.h" #include "memory-util.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "set.h" #include "siphash24.h" #include "stdio-util.h" diff --git a/src/resolve/resolved-dns-packet.h b/src/shared/dns-packet.h similarity index 99% rename from src/resolve/resolved-dns-packet.h rename to src/shared/dns-packet.h index 8095807805..33f2ca3c54 100644 --- a/src/resolve/resolved-dns-packet.h +++ b/src/shared/dns-packet.h @@ -8,7 +8,7 @@ #include "in-addr-util.h" #include "memory-util.h" #include "resolved-def.h" -#include "resolved-forward.h" +#include "shared-forward.h" #include "sparse-endian.h" typedef enum DnsProtocol { diff --git a/src/resolve/resolved-dns-question.c b/src/shared/dns-question.c similarity index 99% rename from src/resolve/resolved-dns-question.c rename to src/shared/dns-question.c index 0749fbcfd9..d6466e0793 100644 --- a/src/resolve/resolved-dns-question.c +++ b/src/shared/dns-question.c @@ -4,9 +4,9 @@ #include "alloc-util.h" #include "dns-domain.h" +#include "dns-question.h" +#include "dns-rr.h" #include "dns-type.h" -#include "resolved-dns-question.h" -#include "resolved-dns-rr.h" #include "socket-util.h" #include "string-util.h" diff --git a/src/resolve/resolved-dns-question.h b/src/shared/dns-question.h similarity index 99% rename from src/resolve/resolved-dns-question.h rename to src/shared/dns-question.h index 40084f482f..4dd3b27713 100644 --- a/src/resolve/resolved-dns-question.h +++ b/src/shared/dns-question.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "resolved-forward.h" +#include "shared-forward.h" /* A simple array of resource keys */ diff --git a/src/resolve/resolved-dns-rr.c b/src/shared/dns-rr.c similarity index 99% rename from src/resolve/resolved-dns-rr.c rename to src/shared/dns-rr.c index 16dda0e979..c86714a607 100644 --- a/src/resolve/resolved-dns-rr.c +++ b/src/shared/dns-rr.c @@ -4,17 +4,16 @@ #include "alloc-util.h" #include "bitmap.h" +#include "dns-answer.h" #include "dns-domain.h" +#include "dns-packet.h" +#include "dns-rr.h" #include "dns-type.h" #include "escape.h" #include "hash-funcs.h" #include "hexdecoct.h" #include "json-util.h" #include "memory-util.h" -#include "resolved-dns-answer.h" -#include "resolved-dns-dnssec.h" -#include "resolved-dns-packet.h" -#include "resolved-dns-rr.h" #include "siphash24.h" #include "string-table.h" #include "string-util.h" @@ -977,6 +976,32 @@ static char *format_svc_params(DnsSvcParam *first) { return strv_join(params, " "); } +uint16_t dnssec_keytag(DnsResourceRecord *dnskey, bool mask_revoke) { + const uint8_t *p; + uint32_t sum, f; + + /* The algorithm from RFC 4034, Appendix B. */ + + assert(dnskey); + assert(dnskey->key->type == DNS_TYPE_DNSKEY); + + f = (uint32_t) dnskey->dnskey.flags; + + if (mask_revoke) + f &= ~DNSKEY_FLAG_REVOKE; + + sum = f + ((((uint32_t) dnskey->dnskey.protocol) << 8) + (uint32_t) dnskey->dnskey.algorithm); + + p = dnskey->dnskey.key; + + for (size_t i = 0; i < dnskey->dnskey.key_size; i++) + sum += (i & 1) == 0 ? (uint32_t) p[i] << 8 : (uint32_t) p[i]; + + sum += (sum >> 16) & UINT32_C(0xFFFF); + + return sum & UINT32_C(0xFFFF); +} + const char* dns_resource_record_to_string(DnsResourceRecord *rr) { _cleanup_free_ char *s = NULL, *t = NULL; char k[DNS_RESOURCE_KEY_STRING_MAX]; diff --git a/src/resolve/resolved-dns-rr.h b/src/shared/dns-rr.h similarity index 99% rename from src/resolve/resolved-dns-rr.h rename to src/shared/dns-rr.h index 8c7c257026..48f77d3326 100644 --- a/src/resolve/resolved-dns-rr.h +++ b/src/shared/dns-rr.h @@ -6,7 +6,7 @@ #include "dns-def.h" #include "dns-type.h" #include "list.h" -#include "resolved-forward.h" +#include "shared-forward.h" /* DNSKEY RR flags */ #define DNSKEY_FLAG_SEP (UINT16_C(1) << 0) @@ -427,6 +427,8 @@ int dns_resource_key_compare_func(const DnsResourceKey *x, const DnsResourceKey void dns_resource_record_hash_func(const DnsResourceRecord *i, struct siphash *state); int dns_resource_record_compare_func(const DnsResourceRecord *x, const DnsResourceRecord *y); +uint16_t dnssec_keytag(DnsResourceRecord *dnskey, bool mask_revoke); + extern const struct hash_ops dns_resource_key_hash_ops; extern const struct hash_ops dns_resource_record_hash_ops; extern const struct hash_ops dns_resource_record_hash_ops_by_key; diff --git a/src/resolve/dns-type.c b/src/shared/dns-type.c similarity index 100% rename from src/resolve/dns-type.c rename to src/shared/dns-type.c diff --git a/src/resolve/dns-type.h b/src/shared/dns-type.h similarity index 100% rename from src/resolve/dns-type.h rename to src/shared/dns-type.h diff --git a/src/resolve/dns_type-to-name.awk b/src/shared/dns_type-to-name.awk similarity index 100% rename from src/resolve/dns_type-to-name.awk rename to src/shared/dns_type-to-name.awk diff --git a/src/resolve/generate-dns_type-gperf.py b/src/shared/generate-dns_type-gperf.py similarity index 100% rename from src/resolve/generate-dns_type-gperf.py rename to src/shared/generate-dns_type-gperf.py diff --git a/src/resolve/generate-dns_type-list.sed b/src/shared/generate-dns_type-list.sed similarity index 100% rename from src/resolve/generate-dns_type-list.sed rename to src/shared/generate-dns_type-list.sed diff --git a/src/shared/meson.build b/src/shared/meson.build index 023ca48fff..15763d4c65 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -61,7 +61,12 @@ shared_sources = files( 'discover-image.c', 'dissect-image.c', 'dm-util.c', + 'dns-answer.c', 'dns-domain.c', + 'dns-packet.c', + 'dns-question.c', + 'dns-rr.c', + 'dns-type.c', 'dropin.c', 'edit-util.c', 'efi-api.c', @@ -313,6 +318,41 @@ ethtool_link_mode_xml = custom_target( capture : true) man_page_depends += ethtool_link_mode_xml +dns_type_list_txt = custom_target( + input : ['generate-dns_type-list.sed', 'dns-type.h'], + output : 'dns_type-list.txt', + command : [sed, '-n', '-r', '-f', '@INPUT0@', '@INPUT1@'], + capture : true) + +gperf_file = custom_target( + input : dns_type_list_txt, + output : 'dns_type-from-name.gperf', + command : [files('generate-dns_type-gperf.py'), + 'dns_type', + 'DNS_TYPE_', + '@INPUT@'], + capture : true) + +dns_type_from_name_inc = custom_target( + input : gperf_file, + output : 'dns_type-from-name.inc', + command : [gperf, + '-L', 'ANSI-C', '-t', '--ignore-case', + '-N', 'lookup_dns_type', + '-H', 'hash_dns_type_name', + '-p', '-C', + '@INPUT@'], + capture : true) + +dns_type_to_name_inc = custom_target( + input : ['dns_type-to-name.awk', dns_type_list_txt], + output : 'dns_type-to-name.inc', + command : [awk, '-f', '@INPUT0@', '@INPUT1@'], + capture : true) + +generated_sources += [dns_type_from_name_inc, dns_type_to_name_inc] +shared_sources += [dns_type_from_name_inc, dns_type_to_name_inc] + libshared_name = 'systemd-shared-@0@'.format(shared_lib_tag) libshared_deps = [threads, diff --git a/src/resolve/resolved-def.h b/src/shared/resolved-def.h similarity index 99% rename from src/resolve/resolved-def.h rename to src/shared/resolved-def.h index d2e3d0fea6..e00bd204d7 100644 --- a/src/resolve/resolved-def.h +++ b/src/shared/resolved-def.h @@ -1,7 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "resolved-forward.h" +#include "shared-forward.h" #include "time-util.h" /* Input + Output: The various protocols we can use */ diff --git a/src/shared/shared-forward.h b/src/shared/shared-forward.h index a15e2769af..9fa7a7ce73 100644 --- a/src/shared/shared-forward.h +++ b/src/shared/shared-forward.h @@ -18,8 +18,10 @@ typedef enum BusPrintPropertyFlags BusPrintPropertyFlags; typedef enum BusTransport BusTransport; typedef enum CatFlags CatFlags; typedef enum CertificateSourceType CertificateSourceType; +typedef enum DnsAnswerFlags DnsAnswerFlags; typedef enum DnsCacheMode DnsCacheMode; typedef enum DnsOverTlsMode DnsOverTlsMode; +typedef enum DnsProtocol DnsProtocol; typedef enum DnssecMode DnssecMode; typedef enum Fido2EnrollFlags Fido2EnrollFlags; typedef enum KeySourceType KeySourceType; @@ -50,6 +52,13 @@ typedef struct Condition Condition; typedef struct ConfigSection ConfigSection; typedef struct ConfigTableItem ConfigTableItem; typedef struct CPUSet CPUSet; +typedef struct DnsAnswer DnsAnswer; +typedef struct DnsPacket DnsPacket; +typedef struct DnsQuestion DnsQuestion; +typedef struct DnsResourceKey DnsResourceKey; +typedef struct DnsResourceRecord DnsResourceRecord; +typedef struct DnsSvcParam DnsSvcParam; +typedef struct DnsTxtItem DnsTxtItem; typedef struct FDSet FDSet; typedef struct Fido2HmacSalt Fido2HmacSalt; typedef struct GroupRecord GroupRecord;