From bceaa99d49538fc24151abed9f9d40c950f626a2 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 13 Feb 2017 20:41:09 +0100 Subject: [PATCH] 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. --- src/resolve/resolved-link.c | 4 ++++ src/resolve/resolved-link.h | 1 + 2 files changed, 5 insertions(+) diff --git a/src/resolve/resolved-link.c b/src/resolve/resolved-link.c index 7b6e4f8398c..44c0cd654f4 100644 --- a/src/resolve/resolved-link.c +++ b/src/resolve/resolved-link.c @@ -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); diff --git a/src/resolve/resolved-link.h b/src/resolve/resolved-link.h index 1e9be8ae84d..55a56b79067 100644 --- a/src/resolve/resolved-link.h +++ b/src/resolve/resolved-link.h @@ -60,6 +60,7 @@ struct Link { unsigned flags; LIST_HEAD(LinkAddress, addresses); + unsigned n_addresses; LIST_HEAD(DnsServer, dns_servers); DnsServer *current_dns_server; -- 2.47.3