resolved: count the number of addresses per link

This becomes handy later on. Moreover, we keep track of similar counters
for other objects like this too, hence adding this here too is obvious.
This commit is contained in:
Lennart Poettering 2017-02-13 20:41:09 +01:00
parent 4a46ed1bc6
commit bceaa99d49
2 changed files with 5 additions and 0 deletions

View File

@ -669,6 +669,7 @@ int link_address_new(Link *l, LinkAddress **ret, int family, const union in_addr
a->link = l;
LIST_PREPEND(addresses, l->addresses, a);
l->n_addresses++;
if (ret)
*ret = a;
@ -683,6 +684,9 @@ LinkAddress *link_address_free(LinkAddress *a) {
if (a->link) {
LIST_REMOVE(addresses, a->link->addresses, a);
assert(a->link->n_addresses > 0);
a->link->n_addresses--;
if (a->llmnr_address_rr) {
if (a->family == AF_INET && a->link->llmnr_ipv4_scope)
dns_zone_remove_rr(&a->link->llmnr_ipv4_scope->zone, a->llmnr_address_rr);

View File

@ -60,6 +60,7 @@ struct Link {
unsigned flags;
LIST_HEAD(LinkAddress, addresses);
unsigned n_addresses;
LIST_HEAD(DnsServer, dns_servers);
DnsServer *current_dns_server;