sd-netlink: introduce sd_netlink_attach_filter()

This commit is contained in:
Yu Watanabe
2021-10-19 20:41:09 +09:00
parent 0522729e19
commit dc317a9aed
2 changed files with 17 additions and 0 deletions
+15
View File
@@ -1023,3 +1023,18 @@ int sd_netlink_add_match(
return netlink_add_match_internal(rtnl, ret_slot, groups, n_groups, type, 0, callback,
destroy_callback, userdata, description);
}
int sd_netlink_attach_filter(sd_netlink *nl, size_t len, struct sock_filter *filter) {
assert_return(nl, -EINVAL);
assert_return(len == 0 || filter, -EINVAL);
if (setsockopt(nl->fd, SOL_SOCKET,
len == 0 ? SO_DETACH_FILTER : SO_ATTACH_FILTER,
&(struct sock_fprog) {
.len = len,
.filter = filter,
}, sizeof(struct sock_fprog)) < 0)
return -errno;
return 0;
}