mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-24 21:34:08 +03:00
Merge pull request #151 from mischief/dns-shared-3
move dns code from resolve to shared v3
This commit is contained in:
commit
ad091530b3
42
Makefile.am
42
Makefile.am
@ -762,6 +762,8 @@ libsystemd_shared_la_SOURCES = \
|
||||
src/shared/udev-util.h \
|
||||
src/shared/device-nodes.c \
|
||||
src/shared/device-nodes.h \
|
||||
src/shared/dns-domain.c \
|
||||
src/shared/dns-domain.h \
|
||||
src/shared/util.c \
|
||||
src/shared/util.h \
|
||||
src/shared/virt.c \
|
||||
@ -978,6 +980,7 @@ libsystemd_shared_la_CFLAGS = \
|
||||
libsystemd_shared_la_LIBADD = \
|
||||
$(SELINUX_LIBS) \
|
||||
$(CAP_LIBS) \
|
||||
$(LIBIDN_LIBS) \
|
||||
-lm
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
@ -1446,7 +1449,8 @@ tests += \
|
||||
test-copy \
|
||||
test-cap-list \
|
||||
test-sigbus \
|
||||
test-verbs
|
||||
test-verbs \
|
||||
test-dns-domain
|
||||
|
||||
EXTRA_DIST += \
|
||||
test/a.service \
|
||||
@ -1577,6 +1581,15 @@ test_hostname_SOURCES = \
|
||||
test_hostname_LDADD = \
|
||||
libsystemd-core.la
|
||||
|
||||
test_dns_domain_SOURCES = \
|
||||
src/test/test-dns-domain.c
|
||||
|
||||
test_dns_domain_LDADD = \
|
||||
libsystemd-network.la \
|
||||
libsystemd-internal.la \
|
||||
libsystemd-shared.la \
|
||||
$(LIBIDN_LIBS)
|
||||
|
||||
if ENABLE_EFI
|
||||
manual_tests += \
|
||||
test-boot-timestamp
|
||||
@ -3382,7 +3395,8 @@ test_dhcp_client_SOURCES = \
|
||||
test_dhcp_client_LDADD = \
|
||||
libsystemd-network.la \
|
||||
libsystemd-internal.la \
|
||||
libsystemd-shared.la
|
||||
libsystemd-shared.la \
|
||||
$(LIBIDN_LIBS)
|
||||
|
||||
test_dhcp_server_SOURCES = \
|
||||
src/libsystemd-network/test-dhcp-server.c
|
||||
@ -5408,8 +5422,6 @@ systemd_resolved_SOURCES = \
|
||||
src/resolve/resolved-link.h \
|
||||
src/resolve/resolved-link.c \
|
||||
src/resolve/resolved-def.h \
|
||||
src/resolve/resolved-dns-domain.h \
|
||||
src/resolve/resolved-dns-domain.c \
|
||||
src/resolve/resolved-dns-rr.h \
|
||||
src/resolve/resolved-dns-rr.c \
|
||||
src/resolve/resolved-dns-question.h \
|
||||
@ -5479,20 +5491,6 @@ GENERAL_ALIASES += \
|
||||
nodist_pkgsysconf_DATA += \
|
||||
src/resolve/resolved.conf
|
||||
|
||||
tests += \
|
||||
test-dns-domain
|
||||
|
||||
test_dns_domain_SOURCES = \
|
||||
src/resolve/resolved-dns-domain.h \
|
||||
src/resolve/resolved-dns-domain.c \
|
||||
src/resolve/test-dns-domain.c
|
||||
|
||||
test_dns_domain_LDADD = \
|
||||
libsystemd-network.la \
|
||||
libsystemd-internal.la \
|
||||
libsystemd-shared.la \
|
||||
$(LIBIDN_LIBS)
|
||||
|
||||
libnss_resolve_la_SOURCES = \
|
||||
src/nss-resolve/nss-resolve.sym \
|
||||
src/nss-resolve/nss-resolve.c
|
||||
@ -5523,8 +5521,6 @@ systemd_resolve_host_SOURCES = \
|
||||
src/resolve/resolved-dns-answer.h \
|
||||
src/resolve/resolved-dns-question.c \
|
||||
src/resolve/resolved-dns-question.h \
|
||||
src/resolve/resolved-dns-domain.c \
|
||||
src/resolve/resolved-dns-domain.h \
|
||||
src/resolve/dns-type.c \
|
||||
src/resolve/dns-type.h
|
||||
|
||||
@ -5554,7 +5550,8 @@ systemd_networkd_SOURCES = \
|
||||
src/network/networkd.c
|
||||
|
||||
systemd_networkd_LDADD = \
|
||||
libsystemd-networkd-core.la
|
||||
libsystemd-networkd-core.la \
|
||||
$(LIBIDN_LIBS)
|
||||
|
||||
if HAVE_LIBIPTC
|
||||
systemd_networkd_LDADD += \
|
||||
@ -5653,7 +5650,8 @@ test_network_SOURCES = \
|
||||
src/network/test-network.c
|
||||
|
||||
test_network_LDADD = \
|
||||
libsystemd-networkd-core.la
|
||||
libsystemd-networkd-core.la \
|
||||
$(LIBIDN_LIBS)
|
||||
|
||||
if HAVE_LIBIPTC
|
||||
test_network_LDADD += \
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "dhcp-lease-internal.h"
|
||||
#include "sd-dhcp-lease.h"
|
||||
#include "network-internal.h"
|
||||
#include "dns-domain.h"
|
||||
|
||||
int sd_dhcp_lease_get_address(sd_dhcp_lease *lease, struct in_addr *addr) {
|
||||
assert_return(lease, -EINVAL);
|
||||
@ -504,9 +505,18 @@ int dhcp_lease_parse_options(uint8_t code, uint8_t len, const uint8_t *option,
|
||||
if (e)
|
||||
*e = 0;
|
||||
|
||||
if (!hostname_is_valid(domainname) || is_localhost(domainname))
|
||||
if (is_localhost(domainname))
|
||||
break;
|
||||
|
||||
r = dns_name_is_valid(domainname);
|
||||
if (r <= 0) {
|
||||
if (r < 0)
|
||||
log_error_errno(r, "Failed to validate domain name: %s: %m", domainname);
|
||||
if (r == 0)
|
||||
log_warning("Domain name is not valid, ignoring: %s", domainname);
|
||||
break;
|
||||
}
|
||||
|
||||
free(lease->domainname);
|
||||
lease->domainname = domainname;
|
||||
domainname = NULL;
|
||||
|
@ -30,6 +30,7 @@
|
||||
#include "networkd-netdev.h"
|
||||
#include "networkd-link.h"
|
||||
#include "network-internal.h"
|
||||
#include "dns-domain.h"
|
||||
|
||||
static int network_load_one(Manager *manager, const char *filename) {
|
||||
_cleanup_network_free_ Network *network = NULL;
|
||||
@ -466,11 +467,16 @@ int config_parse_domains(const char *unit,
|
||||
STRV_FOREACH(domain, *domains) {
|
||||
if (is_localhost(*domain))
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL, "'localhost' domain names may not be configured, ignoring assignment: %s", *domain);
|
||||
else if (!hostname_is_valid(*domain)) {
|
||||
if (!streq(*domain, "*"))
|
||||
log_syntax(unit, LOG_ERR, filename, line, EINVAL, "domain name is not valid, ignoring assignment: %s", *domain);
|
||||
} else
|
||||
continue;
|
||||
else {
|
||||
r = dns_name_is_valid(*domain);
|
||||
if (r <= 0 && !streq(*domain, "*")) {
|
||||
if (r < 0)
|
||||
log_error_errno(r, "Failed to validate domain name: %s: %m", *domain);
|
||||
if (r == 0)
|
||||
log_warning("Domain name is not valid, ignoring assignment: %s", *domain);
|
||||
} else
|
||||
continue;
|
||||
}
|
||||
|
||||
strv_remove(*domains, *domain);
|
||||
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "bus-common-errors.h"
|
||||
#include "bus-util.h"
|
||||
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
#include "resolved-bus.h"
|
||||
#include "resolved-def.h"
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
***/
|
||||
|
||||
#include "resolved-dns-answer.h"
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
|
||||
DnsAnswer *dns_answer_new(unsigned n) {
|
||||
DnsAnswer *a;
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "util.h"
|
||||
#include "strv.h"
|
||||
#include "unaligned.h"
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
#include "resolved-dns-packet.h"
|
||||
|
||||
int dns_packet_new(DnsPacket **ret, DnsProtocol protocol, size_t mtu) {
|
||||
|
@ -20,7 +20,7 @@
|
||||
***/
|
||||
|
||||
#include "resolved-dns-question.h"
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
|
||||
DnsQuestion *dns_question_new(unsigned n) {
|
||||
DnsQuestion *q;
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include "strv.h"
|
||||
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
#include "resolved-dns-rr.h"
|
||||
#include "resolved-dns-packet.h"
|
||||
#include "dns-type.h"
|
||||
|
@ -27,7 +27,7 @@
|
||||
#include "af-list.h"
|
||||
#include "random-util.h"
|
||||
#include "hostname-util.h"
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
#include "resolved-dns-scope.h"
|
||||
|
||||
#define MULTICAST_RATELIMIT_INTERVAL_USEC (1*USEC_PER_SEC)
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include "list.h"
|
||||
|
||||
#include "resolved-dns-zone.h"
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
#include "resolved-dns-packet.h"
|
||||
|
||||
/* Never allow more than 1K entries */
|
||||
|
@ -34,7 +34,7 @@
|
||||
#include "random-util.h"
|
||||
#include "hostname-util.h"
|
||||
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
#include "resolved-conf.h"
|
||||
#include "resolved-bus.h"
|
||||
#include "resolved-manager.h"
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <stringprep.h>
|
||||
#endif
|
||||
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
|
||||
int dns_label_unescape(const char **name, char *dest, size_t sz) {
|
||||
const char *n;
|
@ -35,6 +35,15 @@ int dns_label_apply_idna(const char *encoded, size_t encoded_size, char *decoded
|
||||
int dns_label_undo_idna(const char *encoded, size_t encoded_size, char *decoded, size_t decoded_max);
|
||||
|
||||
int dns_name_normalize(const char *s, char **_ret);
|
||||
static inline int dns_name_is_valid(const char *s) {
|
||||
int r;
|
||||
r = dns_name_normalize(s, NULL);
|
||||
if (r == -EINVAL)
|
||||
return 0;
|
||||
if (r < 0)
|
||||
return r;
|
||||
return 1;
|
||||
}
|
||||
|
||||
unsigned long dns_name_hash_func(const void *s, const uint8_t hash_key[HASH_KEY_SIZE]);
|
||||
int dns_name_compare_func(const void *a, const void *b);
|
@ -20,7 +20,7 @@
|
||||
***/
|
||||
|
||||
#include "macro.h"
|
||||
#include "resolved-dns-domain.h"
|
||||
#include "dns-domain.h"
|
||||
|
||||
static void test_dns_label_unescape_one(const char *what, const char *expect, size_t buffer_sz, int ret) {
|
||||
char buffer[buffer_sz];
|
Loading…
Reference in New Issue
Block a user