X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=lib%2Fll_map.c;h=8e8a0b1e9c9d9880bcbecccffd225fe4ebe9a1c6;hb=25c6339b223f17d1603702c0c87f06b252bb4949;hp=32c8e4429fca19105061b1f7d954723f0679aa77;hpb=0d30c1f8d4a88785ef56c24cd848ffed80a902fd;p=mirror_iproute2.git diff --git a/lib/ll_map.c b/lib/ll_map.c index 32c8e442..8e8a0b1e 100644 --- a/lib/ll_map.c +++ b/lib/ll_map.c @@ -77,8 +77,7 @@ static struct ll_cache *ll_get_by_name(const char *name) return NULL; } -int ll_remember_index(const struct sockaddr_nl *who, - struct nlmsghdr *n, void *arg) +int ll_remember_index(struct nlmsghdr *n, void *arg) { unsigned int h; const char *ifname; @@ -144,7 +143,7 @@ const char *ll_idx_n2a(unsigned int idx) return buf; } -unsigned int ll_idx_a2n(const char *name) +static unsigned int ll_idx_a2n(const char *name) { unsigned int idx; @@ -211,6 +210,20 @@ unsigned ll_name_to_index(const char *name) return idx; } +void ll_drop_by_index(unsigned index) +{ + struct ll_cache *im; + + im = ll_get_by_index(index); + if (!im) + return; + + hlist_del(&im->idx_hash); + hlist_del(&im->name_hash); + + free(im); +} + void ll_init_map(struct rtnl_handle *rth) { static int initialized;