sd-network: add support for wildcard domains
This commit is contained in:
@@ -366,6 +366,13 @@ static int link_status_one(sd_rtnl *rtnl, struct udev *udev, const char *name) {
|
||||
sd_network_link_get_dns(ifindex, &dns);
|
||||
sd_network_link_get_ntp(ifindex, &ntp);
|
||||
sd_network_link_get_domains(ifindex, &domains);
|
||||
r = sd_network_link_get_wildcard_domain(ifindex);
|
||||
if (r > 0) {
|
||||
char *wildcard;
|
||||
|
||||
wildcard = strdup("*");
|
||||
strv_push(&domains, wildcard);
|
||||
}
|
||||
|
||||
sprintf(devid, "n%i", ifindex);
|
||||
d = udev_device_new_from_device_id(udev, devid);
|
||||
|
||||
@@ -1784,6 +1784,9 @@ int link_save(Link *link) {
|
||||
|
||||
fputs("\n", f);
|
||||
|
||||
fprintf(f, "WILDCARD_DOMAIN=%s\n",
|
||||
yes_no(link->network->wildcard_domain));
|
||||
|
||||
fprintf(f, "LLMNR=%s\n",
|
||||
llmnr_support_to_string(link->network->llmnr));
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
@@ -362,6 +363,11 @@ int config_parse_domains(const char *unit,
|
||||
|
||||
strv_uniq(*domains);
|
||||
|
||||
if (strv_isempty(*domains))
|
||||
network->wildcard_domain = false;
|
||||
else if (strv_find(*domains, "*"))
|
||||
network->wildcard_domain = true;
|
||||
|
||||
STRV_FOREACH(domain, *domains)
|
||||
if (is_localhost(*domain) || !hostname_is_valid(*domain))
|
||||
strv_remove(*domains, *domain);
|
||||
|
||||
@@ -111,6 +111,7 @@ struct Network {
|
||||
Hashmap *addresses_by_section;
|
||||
Hashmap *routes_by_section;
|
||||
|
||||
bool wildcard_domain;
|
||||
char **domains, **dns, **ntp;
|
||||
|
||||
LLMNRSupport llmnr;
|
||||
|
||||
Reference in New Issue
Block a user