mirror of
https://github.com/systemd/systemd.git
synced 2026-08-10 17:14:31 +00:00
sd-rtnl: add sd_rtnl_message_append_u16()
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user