]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: move dns stub definitions to resolved-dns-stub.[ch]
authorLennart Poettering <lennart@poettering.net>
Tue, 8 Sep 2020 17:13:29 +0000 (19:13 +0200)
committerLennart Poettering <lennart@poettering.net>
Tue, 8 Sep 2020 17:47:25 +0000 (19:47 +0200)
Just some moving around, no logic changes.

src/resolve/resolved-conf.c
src/resolve/resolved-conf.h
src/resolve/resolved-dns-stub.c
src/resolve/resolved-dns-stub.h
src/resolve/resolved-dnssd.c
src/resolve/resolved-manager.h

index 68fb9c918bf89c9400ed3587234d2fbebf77c5ab..6caae5d1110ec91c841b0617d65285efded74a68 100644 (file)
 
 DEFINE_CONFIG_PARSE_ENUM(config_parse_dns_stub_listener_mode, dns_stub_listener_mode, DnsStubListenerMode, "Failed to parse DNS stub listener mode setting");
 
-static const char* const dns_stub_listener_mode_table[_DNS_STUB_LISTENER_MODE_MAX] = {
-        [DNS_STUB_LISTENER_NO] = "no",
-        [DNS_STUB_LISTENER_UDP] = "udp",
-        [DNS_STUB_LISTENER_TCP] = "tcp",
-        [DNS_STUB_LISTENER_YES] = "yes",
-};
-DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(dns_stub_listener_mode, DnsStubListenerMode, DNS_STUB_LISTENER_YES);
-
-static void dns_stub_listener_extra_hash_func(const DnsStubListenerExtra *a, struct siphash *state) {
-        assert(a);
-
-        siphash24_compress(&a->mode, sizeof(a->mode), state);
-        siphash24_compress(&a->family, sizeof(a->family), state);
-        siphash24_compress(&a->address, FAMILY_ADDRESS_SIZE(a->family), state);
-        siphash24_compress(&a->port, sizeof(a->port), state);
-}
-
-static int dns_stub_listener_extra_compare_func(const DnsStubListenerExtra *a, const DnsStubListenerExtra *b) {
-        int r;
-
-        assert(a);
-        assert(b);
-
-        r = CMP(a->mode, b->mode);
-        if (r != 0)
-                return r;
-
-        r = CMP(a->family, b->family);
-        if (r != 0)
-                return r;
-
-        r = memcmp(&a->address, &b->address, FAMILY_ADDRESS_SIZE(a->family));
-        if (r != 0)
-                return r;
-
-        return CMP(a->port, b->port);
-}
-
-DEFINE_PRIVATE_HASH_OPS_WITH_KEY_DESTRUCTOR(
-                dns_stub_listener_extra_hash_ops,
-                DnsStubListenerExtra,
-                dns_stub_listener_extra_hash_func,
-                dns_stub_listener_extra_compare_func,
-                dns_stub_listener_extra_free);
-
 static int manager_add_dns_server_by_string(Manager *m, DnsServerType type, const char *word) {
         _cleanup_free_ char *server_name = NULL;
         union in_addr_union address;
index 50a0caaf16b671ed8173f6d85eb1c62f51901083..09ae8d7a5b3adccd71f4e5e20eca5d12a8bc21be 100644 (file)
@@ -3,17 +3,6 @@
 
 #include "conf-parser.h"
 
-typedef enum DnsStubListenerMode DnsStubListenerMode;
-
-enum DnsStubListenerMode {
-        DNS_STUB_LISTENER_NO,
-        DNS_STUB_LISTENER_UDP = 1 << 0,
-        DNS_STUB_LISTENER_TCP = 1 << 1,
-        DNS_STUB_LISTENER_YES = DNS_STUB_LISTENER_UDP | DNS_STUB_LISTENER_TCP,
-        _DNS_STUB_LISTENER_MODE_MAX,
-        _DNS_STUB_LISTENER_MODE_INVALID = -1
-};
-
 #include "resolved-dns-server.h"
 
 int manager_parse_config_file(Manager *m);
@@ -31,6 +20,3 @@ CONFIG_PARSER_PROTOTYPE(config_parse_dnssd_service_name);
 CONFIG_PARSER_PROTOTYPE(config_parse_dnssd_service_type);
 CONFIG_PARSER_PROTOTYPE(config_parse_dnssd_txt);
 CONFIG_PARSER_PROTOTYPE(config_parse_dns_stub_listener_extra);
-
-const char* dns_stub_listener_mode_to_string(DnsStubListenerMode p) _const_;
-DnsStubListenerMode dns_stub_listener_mode_from_string(const char *s) _pure_;
index 68b8678b5f9dbb663eb4421c5bc5846aeac8bd98..c89bf6c13f2a5f9bc40e65d86ab4e077aeac479b 100644 (file)
@@ -9,12 +9,51 @@
 #include "resolved-dns-stub.h"
 #include "socket-netlink.h"
 #include "socket-util.h"
+#include "string-table.h"
 
 /* The MTU of the loopback device is 64K on Linux, advertise that as maximum datagram size, but subtract the Ethernet,
  * IP and UDP header sizes */
 #define ADVERTISE_DATAGRAM_SIZE_MAX (65536U-14U-20U-8U)
 
+static void dns_stub_listener_extra_hash_func(const DnsStubListenerExtra *a, struct siphash *state) {
+        assert(a);
+
+        siphash24_compress(&a->mode, sizeof(a->mode), state);
+        siphash24_compress(&a->family, sizeof(a->family), state);
+        siphash24_compress(&a->address, FAMILY_ADDRESS_SIZE(a->family), state);
+        siphash24_compress(&a->port, sizeof(a->port), state);
+}
+
+static int dns_stub_listener_extra_compare_func(const DnsStubListenerExtra *a, const DnsStubListenerExtra *b) {
+        int r;
+
+        assert(a);
+        assert(b);
+
+        r = CMP(a->mode, b->mode);
+        if (r != 0)
+                return r;
+
+        r = CMP(a->family, b->family);
+        if (r != 0)
+                return r;
+
+        r = memcmp(&a->address, &b->address, FAMILY_ADDRESS_SIZE(a->family));
+        if (r != 0)
+                return r;
+
+        return CMP(a->port, b->port);
+}
+
+DEFINE_HASH_OPS_WITH_KEY_DESTRUCTOR(
+                dns_stub_listener_extra_hash_ops,
+                DnsStubListenerExtra,
+                dns_stub_listener_extra_hash_func,
+                dns_stub_listener_extra_compare_func,
+                dns_stub_listener_extra_free);
+
 int dns_stub_listener_extra_new(DnsStubListenerExtra **ret) {
+
         DnsStubListenerExtra *l;
 
         l = new0(DnsStubListenerExtra, 1);
@@ -794,3 +833,11 @@ void manager_dns_stub_stop(Manager *m) {
         m->dns_stub_udp_event_source = sd_event_source_unref(m->dns_stub_udp_event_source);
         m->dns_stub_tcp_event_source = sd_event_source_unref(m->dns_stub_tcp_event_source);
 }
+
+static const char* const dns_stub_listener_mode_table[_DNS_STUB_LISTENER_MODE_MAX] = {
+        [DNS_STUB_LISTENER_NO] = "no",
+        [DNS_STUB_LISTENER_UDP] = "udp",
+        [DNS_STUB_LISTENER_TCP] = "tcp",
+        [DNS_STUB_LISTENER_YES] = "yes",
+};
+DEFINE_STRING_TABLE_LOOKUP_WITH_BOOLEAN(dns_stub_listener_mode, DnsStubListenerMode, DNS_STUB_LISTENER_YES);
index c3b4c5afd9ba2b4c8387f690da7687ceb623bb1b..0ff0289550e058108d09b7bd19be4e624c5d1e5a 100644 (file)
@@ -1,10 +1,39 @@
 /* SPDX-License-Identifier: LGPL-2.1+ */
 #pragma once
 
+#include "hash-funcs.h"
+
+typedef struct DnsStubListenerExtra DnsStubListenerExtra;
+
+typedef enum DnsStubListenerMode {
+        DNS_STUB_LISTENER_NO,
+        DNS_STUB_LISTENER_UDP = 1 << 0,
+        DNS_STUB_LISTENER_TCP = 1 << 1,
+        DNS_STUB_LISTENER_YES = DNS_STUB_LISTENER_UDP | DNS_STUB_LISTENER_TCP,
+        _DNS_STUB_LISTENER_MODE_MAX,
+        _DNS_STUB_LISTENER_MODE_INVALID = -1
+} DnsStubListenerMode;
+
 #include "resolved-manager.h"
 
+struct DnsStubListenerExtra {
+        DnsStubListenerMode mode;
+
+        int family;
+        union in_addr_union address;
+        uint16_t port;
+
+        sd_event_source *udp_event_source;
+        sd_event_source *tcp_event_source;
+};
+
+extern const struct hash_ops dns_stub_listener_extra_hash_ops;
+
 int dns_stub_listener_extra_new(DnsStubListenerExtra **ret);
 DnsStubListenerExtra *dns_stub_listener_extra_free(DnsStubListenerExtra *p);
 
 void manager_dns_stub_stop(Manager *m);
 int manager_dns_stub_start(Manager *m);
+
+const char* dns_stub_listener_mode_to_string(DnsStubListenerMode p) _const_;
+DnsStubListenerMode dns_stub_listener_mode_from_string(const char *s) _pure_;
index 7d482ac5da21f745f36e41d79fda34222dcc5c10..945be0774035e1dcdbf464f11f79901eee0b10dc 100644 (file)
@@ -6,6 +6,7 @@
 #include "resolved-dnssd.h"
 #include "resolved-dns-rr.h"
 #include "resolved-manager.h"
+#include "resolved-conf.h"
 #include "specifier.h"
 #include "strv.h"
 
index 905b55aa7a29871ee02d772d9004f698463b25ad..c30052195a6b0ad56f21b7f98033d10b865acd79 100644 (file)
 
 typedef struct Manager Manager;
 
-#include "resolved-conf.h"
 #include "resolved-dns-query.h"
 #include "resolved-dns-search-domain.h"
 #include "resolved-dns-stream.h"
+#include "resolved-dns-stub.h"
 #include "resolved-dns-trust-anchor.h"
 #include "resolved-link.h"
 
@@ -31,17 +31,6 @@ typedef struct EtcHosts {
         Set *no_address;
 } EtcHosts;
 
-typedef struct DnsStubListenerExtra {
-        DnsStubListenerMode mode;
-
-        int family;
-        union in_addr_union address;
-        uint16_t port;
-
-        sd_event_source *udp_event_source;
-        sd_event_source *tcp_event_source;
-} DnsStubListenerExtra;
-
 struct Manager {
         sd_event *event;