sd-rtnl: message - add support for getting prefixlen from address messages

This commit is contained in:
Tom Gundersen 2014-05-10 16:06:23 +02:00
parent 31d0ac36c6
commit f4e884dd1c
2 changed files with 16 additions and 0 deletions

View file

@ -290,6 +290,21 @@ int sd_rtnl_message_addr_get_family(sd_rtnl_message *m, unsigned char *family) {
return 0;
}
int sd_rtnl_message_addr_get_prefixlen(sd_rtnl_message *m, unsigned char *prefixlen) {
struct ifaddrmsg *ifa;
assert_return(m, -EINVAL);
assert_return(m->hdr, -EINVAL);
assert_return(rtnl_message_type_is_addr(m->hdr->nlmsg_type), -EINVAL);
assert_return(prefixlen, -EINVAL);
ifa = NLMSG_DATA(m->hdr);
*prefixlen = ifa->ifa_prefixlen;
return 0;
}
int sd_rtnl_message_addr_get_scope(sd_rtnl_message *m, unsigned char *scope) {
struct ifaddrmsg *ifa;

View file

@ -86,6 +86,7 @@ int sd_rtnl_message_addr_set_prefixlen(sd_rtnl_message *m, unsigned char prefixl
int sd_rtnl_message_addr_set_scope(sd_rtnl_message *m, unsigned char scope);
int sd_rtnl_message_addr_set_flags(sd_rtnl_message *m, unsigned char flags);
int sd_rtnl_message_addr_get_family(sd_rtnl_message *m, unsigned char *family);
int sd_rtnl_message_addr_get_prefixlen(sd_rtnl_message *m, unsigned char *prefixlen);
int sd_rtnl_message_addr_get_scope(sd_rtnl_message *m, unsigned char *scope);
int sd_rtnl_message_addr_get_flags(sd_rtnl_message *m, unsigned char *flags);
int sd_rtnl_message_addr_get_ifindex(sd_rtnl_message *m, int *ifindex);