]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: ignore DNSSEC= option when resolved is built without gcrypt (#6084)
authorYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 17 Jun 2017 20:22:32 +0000 (05:22 +0900)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 17 Jun 2017 20:22:32 +0000 (16:22 -0400)
Fixes #5583.

configure.ac
meson.build
src/resolve/resolved-conf.c
src/resolve/resolved-link.c

index 3e7af7694c3727e2ec0a089d261c54a808250d3d..90e79d7799dc95a080676166155ddf1422e9374a 100644 (file)
@@ -1326,6 +1326,11 @@ AC_ARG_WITH(default-dnssec,
         [DEFAULT_DNSSEC_MODE="$withval"],
         [DEFAULT_DNSSEC_MODE="allow-downgrade"])
 
+if test "x$have_gcrypt" = xno -a "x${DEFAULT_DNSSEC_MODE}" != xno ; then
+        AC_MSG_WARN(default-dnssec cannot be set to yes or allow-downgrade when gcrypt is disabled. Setting default-dnssec to no.)
+        DEFAULT_DNSSEC_MODE="no"
+fi
+
 AS_CASE("x${DEFAULT_DNSSEC_MODE}",
         [xno], [mode=DNSSEC_NO],
         [xyes], [mode=DNSSEC_YES],
index 407d7ea08eff7913e9e87dfcb71faefe61f6e49b..0c6293dba42799a8e3b2f4e35d248f1129b96b5f 100644 (file)
@@ -603,11 +603,6 @@ kill_user_processes = get_option('default-kill-user-processes')
 conf.set10('KILL_USER_PROCESSES', kill_user_processes)
 substs.set('KILL_USER_PROCESSES', kill_user_processes ? 'yes' : 'no')
 
-default_dnssec = get_option('default-dnssec')
-conf.set('DEFAULT_DNSSEC_MODE',
-         'DNSSEC_' + default_dnssec.underscorify().to_upper())
-substs.set('DEFAULT_DNSSEC_MODE', default_dnssec)
-
 dns_servers = get_option('dns-servers')
 conf.set_quoted('DNS_SERVERS', dns_servers)
 substs.set('DNS_SERVERS', dns_servers)
@@ -953,6 +948,15 @@ else
         libgpg_error = []
 endif
 
+default_dnssec = get_option('default-dnssec')
+if default_dnssec != 'no' and not conf.get('HAVE_GCRYPT', false)
+        message('default-dnssec cannot be set to yes or allow-downgrade when gcrypt is disabled. Setting default-dnssec to no.')
+        default_dnssec = 'no'
+endif
+conf.set('DEFAULT_DNSSEC_MODE',
+         'DNSSEC_' + default_dnssec.underscorify().to_upper())
+substs.set('DEFAULT_DNSSEC_MODE', default_dnssec)
+
 want_importd = get_option('importd')
 if want_importd != 'false'
         have_deps = (conf.get('HAVE_LIBCURL', false) and
index 97334a0af7a9facfd2309fc6117e4ab590c1b8a5..75636e0e5647816d53d8841fd7f16eaecf61fa44 100644 (file)
@@ -246,6 +246,12 @@ int manager_parse_config_file(Manager *m) {
                         return r;
         }
 
+#ifndef HAVE_GCRYPT
+        if (m->dnssec_mode != DNSSEC_NO) {
+                log_warning("DNSSEC option cannot be enabled or set to allow-downgrade when systemd-resolved is built without gcrypt support. Turning off DNSSEC support.");
+                m->dnssec_mode = DNSSEC_NO;
+        }
+#endif
         return 0;
 
 }
index d06096f3f238027d334f4a2e692f89ab43408dac..fc59a675e2fee55b26e9444ef723874c80e91840 100644 (file)
@@ -313,6 +313,12 @@ void link_set_dnssec_mode(Link *l, DnssecMode mode) {
 
         assert(l);
 
+#ifndef HAVE_GCRYPT
+        if (mode == DNSSEC_YES || mode == DNSSEC_ALLOW_DOWNGRADE)
+                log_warning("DNSSEC option for the link cannot be enabled or set to allow-downgrade when systemd-resolved is built without gcrypt support. Turning off DNSSEC support.");
+        return;
+#endif
+
         if (l->dnssec_mode == mode)
                 return;