chiark / gitweb /
networkd: print nice warnings if people configure invalid domain names
authorLennart Poettering <lennart@poettering.net>
Fri, 15 Aug 2014 14:21:19 +0000 (16:21 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 15 Aug 2014 14:21:19 +0000 (16:21 +0200)
src/network/networkd-network.c

index 6538abe419cf923e2fb3927a34cb1b3c79a0dfb4..803fcdd6099148ceb9601b8ad33a4e471bb83d4f 100644 (file)
@@ -365,13 +365,20 @@ int config_parse_domains(const char *unit,
         strv_uniq(*domains);
         network->wildcard_domain = !!strv_find(*domains, "*");
 
-        STRV_FOREACH(domain, *domains)
-                if (is_localhost(*domain) || !hostname_is_valid(*domain) || streq(*domain, "*")) {
-                        strv_remove(*domains, *domain);
-
-                        /* We removed one entry, make sure we don't skip the next one */
-                        domain--;
-                }
+        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;
+
+                strv_remove(*domains, *domain);
+
+                /* We removed one entry, make sure we don't skip the next one */
+                domain--;
+        }
 
         return 0;
 }