From: Thomas Graf Date: Mon, 1 Apr 2013 09:16:34 +0000 (+0200) Subject: genl: Update mt_id of cache ops when resolving genl id X-Git-Tag: libnl3_2_22rc1~18 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ad545f2854458f98498e0cfed136845ef029a115;p=libnl genl: Update mt_id of cache ops when resolving genl id The cache layer uses the message type array stored in the cache ops to lookup which cache a message belongs to. Update to the the message array with the resolved generic netlink id to make it compatible with the caching API. Allows to use nl_cache_refill() and others for generic netlink based caches with dynamic generic netlink ids. Signed-off-by: Thomas Graf --- diff --git a/lib/genl/mngt.c b/lib/genl/mngt.c index 35bbb12..3648663 100644 --- a/lib/genl/mngt.c +++ b/lib/genl/mngt.c @@ -295,6 +295,10 @@ static int __genl_ops_resolve(struct nl_cache *ctrl, struct genl_ops *ops) family = genl_ctrl_search_by_name(ctrl, ops->o_name); if (family != NULL) { ops->o_id = genl_family_get_id(family); + + if (ops->o_cache_ops) + ops->o_cache_ops->co_msgtypes[0].mt_id = ops->o_id; + genl_family_put(family); return 0;