sd-rtnl: add sd_rtnl_message_append_u16()

This commit is contained in:
Tom Gundersen
2014-01-22 14:16:01 +01:00
parent 2c3d81d4a7
commit 01b36069cc
2 changed files with 35 additions and 0 deletions

View File

@@ -404,6 +404,40 @@ int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, const
return 0;
}
int sd_rtnl_message_append_u16(sd_rtnl_message *m, unsigned short type, uint16_t data) {
uint16_t rtm_type;
int r;
assert_return(m, -EINVAL);
r = sd_rtnl_message_get_type(m, &rtm_type);
if (r < 0)
return r;
/* check that the type is correct */
switch (rtm_type) {
case RTM_NEWLINK:
case RTM_SETLINK:
case RTM_GETLINK:
case RTM_DELLINK:
switch (type) {
case IFLA_VLAN_ID:
break;
default:
return -ENOTSUP;
}
break;
default:
return -ENOTSUP;
}
r = add_rtattr(m, type, &data, sizeof(uint16_t));
if (r < 0)
return r;
return 0;
}
int sd_rtnl_message_append_u32(sd_rtnl_message *m, unsigned short type, uint32_t data) {
uint16_t rtm_type;
int r;

View File

@@ -92,6 +92,7 @@ int sd_rtnl_message_link_get_flags(sd_rtnl_message *m, unsigned *flags);
int sd_rtnl_message_route_set_dst_prefixlen(sd_rtnl_message *m, unsigned char prefixlen);
int sd_rtnl_message_append_string(sd_rtnl_message *m, unsigned short type, const char *data);
int sd_rtnl_message_append_u16(sd_rtnl_message *m, unsigned short type, uint16_t data);
int sd_rtnl_message_append_u32(sd_rtnl_message *m, unsigned short type, uint32_t data);
int sd_rtnl_message_append_in_addr(sd_rtnl_message *m, unsigned short type, const struct in_addr *data);
int sd_rtnl_message_append_in6_addr(sd_rtnl_message *m, unsigned short type, const struct in6_addr *data);