mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-03-12 08:58:20 +03:00
sd-netlink: introduce sd_netlink_message_read_data()
This commit is contained in:
parent
2fe1d557e5
commit
de52a83cb7
@ -694,6 +694,30 @@ int sd_netlink_message_read(sd_netlink_message *m, unsigned short type, size_t s
|
|||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int sd_netlink_message_read_data(sd_netlink_message *m, unsigned short type, size_t *ret_size, void **ret_data) {
|
||||||
|
void *attr_data, *data;
|
||||||
|
int r;
|
||||||
|
|
||||||
|
assert_return(m, -EINVAL);
|
||||||
|
|
||||||
|
r = netlink_message_read_internal(m, type, &attr_data, NULL);
|
||||||
|
if (r < 0)
|
||||||
|
return r;
|
||||||
|
|
||||||
|
if (ret_data) {
|
||||||
|
data = memdup(attr_data, r);
|
||||||
|
if (!data)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
|
*ret_data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret_size)
|
||||||
|
*ret_size = r;
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
int sd_netlink_message_read_string_strdup(sd_netlink_message *m, unsigned short type, char **data) {
|
int sd_netlink_message_read_string_strdup(sd_netlink_message *m, unsigned short type, char **data) {
|
||||||
void *attr_data;
|
void *attr_data;
|
||||||
char *str;
|
char *str;
|
||||||
|
@ -103,6 +103,7 @@ int sd_netlink_message_open_container_union(sd_netlink_message *m, unsigned shor
|
|||||||
int sd_netlink_message_close_container(sd_netlink_message *m);
|
int sd_netlink_message_close_container(sd_netlink_message *m);
|
||||||
|
|
||||||
int sd_netlink_message_read(sd_netlink_message *m, unsigned short type, size_t size, void *data);
|
int sd_netlink_message_read(sd_netlink_message *m, unsigned short type, size_t size, void *data);
|
||||||
|
int sd_netlink_message_read_data(sd_netlink_message *m, unsigned short type, size_t *ret_size, void **ret_data);
|
||||||
int sd_netlink_message_read_string_strdup(sd_netlink_message *m, unsigned short type, char **data);
|
int sd_netlink_message_read_string_strdup(sd_netlink_message *m, unsigned short type, char **data);
|
||||||
int sd_netlink_message_read_string(sd_netlink_message *m, unsigned short type, const char **data);
|
int sd_netlink_message_read_string(sd_netlink_message *m, unsigned short type, const char **data);
|
||||||
int sd_netlink_message_read_strv(sd_netlink_message *m, unsigned short container_type, unsigned short type_id, char ***ret);
|
int sd_netlink_message_read_strv(sd_netlink_message *m, unsigned short container_type, unsigned short type_id, char ***ret);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user