From: Yu Watanabe Date: Fri, 7 Oct 2022 05:17:13 +0000 (+0900) Subject: network: drop unnecessary call of ndisc_vacuum() X-Git-Tag: v252-rc1~5^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=44085d63f04127cbd2f15c11e672de4d024d91b2;p=thirdparty%2Fsystemd.git network: drop unnecessary call of ndisc_vacuum() After the commit 773024685b37170395a11716f8e4ad99d3580455, DNS servers or domains are dropped when their lifefime become zero. Hence, it is not necessary to try to them when writing state file. Of course, because of the accuracy of the timer event source or priority of event sources, a possibility is introduced that a DNS server or domain with zero lifetime is stored in the state file. However, such entry will be dropped soon when the timer event source is triggered. Hence, that should not cause any real issues. --- diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index 95722e24ef9..f31735b6ec6 100644 --- a/src/network/networkd-ndisc.c +++ b/src/network/networkd-ndisc.c @@ -1175,27 +1175,6 @@ int ndisc_stop(Link *link) { } -void ndisc_vacuum(Link *link) { - NDiscRDNSS *r; - NDiscDNSSL *d; - usec_t now_usec; - - assert(link); - assert(link->manager); - - /* Removes all RDNSS and DNSSL entries whose validity time has passed */ - - assert_se(sd_event_now(link->manager->event, CLOCK_BOOTTIME, &now_usec) >= 0); - - SET_FOREACH(r, link->ndisc_rdnss) - if (r->lifetime_usec < now_usec) - free(set_remove(link->ndisc_rdnss, r)); - - SET_FOREACH(d, link->ndisc_dnssl) - if (d->lifetime_usec < now_usec) - free(set_remove(link->ndisc_dnssl, d)); -} - void ndisc_flush(Link *link) { assert(link); diff --git a/src/network/networkd-ndisc.h b/src/network/networkd-ndisc.h index b696db9df13..6ccc1295d01 100644 --- a/src/network/networkd-ndisc.h +++ b/src/network/networkd-ndisc.h @@ -41,7 +41,6 @@ void network_adjust_ipv6_accept_ra(Network *network); int ndisc_start(Link *link); int ndisc_stop(Link *link); -void ndisc_vacuum(Link *link); void ndisc_flush(Link *link); int link_request_ndisc(Link *link); diff --git a/src/network/networkd-state-file.c b/src/network/networkd-state-file.c index 502da1afb2b..49321849918 100644 --- a/src/network/networkd-state-file.c +++ b/src/network/networkd-state-file.c @@ -540,9 +540,6 @@ int link_save(Link *link) { /************************************************************/ - /* Make sure to flush out old entries before we use the NDisc data */ - ndisc_vacuum(link); - fputs("DNS=", f); if (link->n_dns != UINT_MAX) link_save_dns(link, f, link->dns, link->n_dns, NULL);