From 31e78d1042a39709e54215a511a8d5f47b23a72b Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 24 Jul 2019 13:10:12 +0900 Subject: [PATCH] sd-netlink: introduce sd_genl_message_get_family() --- src/libsystemd/sd-netlink/generic-netlink.c | 16 ++++++++++++++++ src/systemd/sd-netlink.h | 1 + 2 files changed, 17 insertions(+) diff --git a/src/libsystemd/sd-netlink/generic-netlink.c b/src/libsystemd/sd-netlink/generic-netlink.c index cfd9b4973df..58dda0323d1 100644 --- a/src/libsystemd/sd-netlink/generic-netlink.c +++ b/src/libsystemd/sd-netlink/generic-netlink.c @@ -158,3 +158,19 @@ int nlmsg_type_to_genl_family(sd_netlink *nl, uint16_t type, sd_genl_family *ret return 0; } + +int sd_genl_message_get_family(sd_netlink *nl, sd_netlink_message *m, sd_genl_family *family) { + uint16_t type; + int r; + + assert_return(m, -EINVAL); + assert_return(nl, -EINVAL); + assert_return(nl->protocol == NETLINK_GENERIC, -EINVAL); + assert_return(family, -EINVAL); + + r = sd_netlink_message_get_type(m, &type); + if (r < 0) + return r; + + return nlmsg_type_to_genl_family(nl, type, family); +} diff --git a/src/systemd/sd-netlink.h b/src/systemd/sd-netlink.h index 283c2dd35b4..43a15a98c00 100644 --- a/src/systemd/sd-netlink.h +++ b/src/systemd/sd-netlink.h @@ -204,6 +204,7 @@ int sd_rtnl_message_routing_policy_rule_get_flags(sd_netlink_message *m, unsigne /* genl */ int sd_genl_socket_open(sd_netlink **nl); int sd_genl_message_new(sd_netlink *nl, sd_genl_family family, uint8_t cmd, sd_netlink_message **m); +int sd_genl_message_get_family(sd_netlink *nl, sd_netlink_message *m, sd_genl_family *family); /* slot */ sd_netlink_slot *sd_netlink_slot_ref(sd_netlink_slot *nl); -- 2.47.3