+#define _GNU_SOURCE
#include <netlink/netlink.h>
#include <netlink/genl/genl.h>
#include <netlink/genl/ctrl.h>
nl_cb_put(cb);
}
-static int unl_genl_multicast_id(struct unl *unl, const char *name)
+int unl_genl_multicast_id(struct unl *unl, const char *name)
{
struct nlattr *tb[CTRL_ATTR_MCAST_GRP_MAX + 1];
struct nlattr *groups, *group;
NLA_PUT_STRING(msg, CTRL_ATTR_FAMILY_NAME, unl->family_name);
unl_genl_request_single(unl, msg, &msg);
if (!msg)
- goto nla_put_failure;
+ return -1;
groups = unl_find_attr(unl, msg, CTRL_ATTR_MCAST_GROUPS);
if (!groups)
- goto fail;
+ goto nla_put_failure;
nla_for_each_nested(group, groups, rem) {
const char *gn;
break;
}
-fail:
- nlmsg_free(msg);
nla_put_failure:
+ nlmsg_free(msg);
return ret;
}