X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fnetwork%2Fnetworkd-network.c;h=6f0d1a16899b12a2732e13459f041ca2ca3aed3f;hb=f15b6e5a8b6e550c6df7f6ccc216d5c4cbe6a604;hp=bbc5d279e942035e188c1560795eb8e6b604ab4b;hpb=6192b846ca0d15602e94ddb5da4420b7c60d64a5;p=elogind.git diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index bbc5d279e..6f0d1a168 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -351,6 +351,7 @@ int config_parse_domains(const char *unit, const char *rvalue, void *data, void *userdata) { + Network *network = userdata; char ***domains = data; char **domain; int r; @@ -361,11 +362,16 @@ int config_parse_domains(const char *unit, return r; strv_uniq(*domains); + network->wildcard_domain = !!strv_find(*domains, "*"); STRV_FOREACH(domain, *domains) - if (is_localhost(*domain) || !hostname_is_valid(*domain)) + 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--; + } + return 0; }