From 64581765148083b26ca38c89add870789fe0e6f7 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 3 Jul 2020 18:29:13 +0900 Subject: [PATCH] network: do not save DNS= entries not match link ifindex --- src/network/networkd-link.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 7e7713519b..1d73a3c34f 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -4111,10 +4111,13 @@ static void print_link_hashmap(FILE *f, const char *prefix, Hashmap* h) { fputc('\n', f); } -static void link_save_dns(FILE *f, struct in_addr_full **dns, unsigned n_dns, bool *space) { +static void link_save_dns(Link *link, FILE *f, struct in_addr_full **dns, unsigned n_dns, bool *space) { for (unsigned j = 0; j < n_dns; j++) { const char *str; + if (dns[j]->ifindex != 0 && dns[j]->ifindex != link->ifindex) + continue; + str = in_addr_full_to_string(dns[j]); if (!str) continue; @@ -4251,9 +4254,9 @@ int link_save(Link *link) { fputs("DNS=", f); space = false; if (link->n_dns != (unsigned) -1) - link_save_dns(f, link->dns, link->n_dns, &space); + link_save_dns(link, f, link->dns, link->n_dns, &space); else - link_save_dns(f, link->network->dns, link->network->n_dns, &space); + link_save_dns(link, f, link->network->dns, link->network->n_dns, &space); serialize_addresses(f, NULL, &space, NULL,