]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-netlink introduce API to add any size and type
authorSusant Sahani <ssahani@gmail.com>
Sat, 28 Nov 2015 02:31:06 +0000 (08:01 +0530)
committerSusant Sahani <ssahani@gmail.com>
Tue, 19 Jan 2016 06:47:54 +0000 (12:17 +0530)
Now we dont have any public API that will support
any size . sd_netlink_message_append_data will support
this.

src/libsystemd/sd-netlink/netlink-message.c
src/systemd/sd-netlink.h

index 50792bc4a326c6bba9048efc0684a7ad5c5c41ea..b1b3bccc4473a9500737b5c657528541301621a5 100644 (file)
@@ -342,6 +342,19 @@ int sd_netlink_message_append_u32(sd_netlink_message *m, unsigned short type, ui
         return 0;
 }
 
+int sd_netlink_message_append_data(sd_netlink_message *m, unsigned short type, const void *data, size_t len) {
+        int r;
+
+        assert_return(m, -EINVAL);
+        assert_return(!m->sealed, -EPERM);
+
+        r = add_rtattr(m, type, &data, len);
+        if (r < 0)
+                return r;
+
+        return 0;
+}
+
 int sd_netlink_message_append_in_addr(sd_netlink_message *m, unsigned short type, const struct in_addr *data) {
         int r;
 
index 98088f12049cde034473dc7a4fd2750095d06aa0..5d0d0643e1cd05d94c8622e22c36c9d1b29414e7 100644 (file)
@@ -74,6 +74,7 @@ int sd_netlink_message_append_flag(sd_netlink_message *m, unsigned short type);
 int sd_netlink_message_append_u8(sd_netlink_message *m, unsigned short type, uint8_t data);
 int sd_netlink_message_append_u16(sd_netlink_message *m, unsigned short type, uint16_t data);
 int sd_netlink_message_append_u32(sd_netlink_message *m, unsigned short type, uint32_t data);
+int sd_netlink_message_append_data(sd_netlink_message *m, unsigned short type, const void *data, size_t len);
 int sd_netlink_message_append_in_addr(sd_netlink_message *m, unsigned short type, const struct in_addr *data);
 int sd_netlink_message_append_in6_addr(sd_netlink_message *m, unsigned short type, const struct in6_addr *data);
 int sd_netlink_message_append_ether_addr(sd_netlink_message *m, unsigned short type, const struct ether_addr *data);