• D
    netlink: add API to retrieve all group memberships · b42be38b
    David Herrmann 提交于
    This patch adds getsockopt(SOL_NETLINK, NETLINK_LIST_MEMBERSHIPS) to
    retrieve all groups a socket is a member of. Currently, we have to use
    getsockname() and look at the nl.nl_groups bitmask. However, this mask is
    limited to 32 groups. Hence, similar to NETLINK_ADD_MEMBERSHIP and
    NETLINK_DROP_MEMBERSHIP, this adds a separate sockopt to manager higher
    groups IDs than 32.
    
    This new NETLINK_LIST_MEMBERSHIPS option takes a pointer to __u32 and the
    size of the array. The array is filled with the full membership-set of the
    socket, and the required array size is returned in optlen. Hence,
    user-space can retry with a properly sized array in case it was too small.
    Signed-off-by: NDavid Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    b42be38b
netlink.h 5.7 KB