]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-netlink: use structured initialization
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 9 Mar 2021 16:13:20 +0000 (17:13 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 9 Mar 2021 16:26:24 +0000 (17:26 +0100)
The casts look somewhat ugly and type-unsafe, but they are equivalent
to what was there before (we initialized a variable from a void*).

src/libsystemd/sd-netlink/generic-netlink.c
src/libsystemd/sd-netlink/nfnl-message.c

index 9710ed0f16319e5838bf252ffd7ae8bac646b5af..cd5a0104a6c90e26a4186a271d5c7c68b68a473d 100644 (file)
@@ -32,7 +32,6 @@ static int genl_message_new(sd_netlink *nl, sd_genl_family_t family, uint16_t nl
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
         const NLType *genl_cmd_type, *nl_type;
         const NLTypeSystem *type_system;
-        struct genlmsghdr *genl;
         size_t size;
         int r;
 
@@ -63,9 +62,11 @@ static int genl_message_new(sd_netlink *nl, sd_genl_family_t family, uint16_t nl
         m->hdr->nlmsg_type = nlmsg_type;
 
         type_get_type_system(nl_type, &m->containers[0].type_system);
-        genl = NLMSG_DATA(m->hdr);
-        genl->cmd = cmd;
-        genl->version = genl_families[family].version;
+
+        *(struct genlmsghdr *) NLMSG_DATA(m->hdr) = (struct genlmsghdr) {
+                .cmd = cmd,
+                .version = genl_families[family].version,
+        };
 
         *ret = TAKE_PTR(m);
 
index 47e107a3134e0c6536010c2999a25e8bfd5bbd4a..5f669f750b63b1b8bd289c3a6ec07397711edeea 100644 (file)
@@ -19,7 +19,6 @@
 
 static int nft_message_new(sd_netlink *nfnl, sd_netlink_message **ret, int family, uint16_t type, uint16_t flags) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
-        struct nfgenmsg *nfh;
         const NLType *nl_type;
         size_t size;
         int r;
@@ -57,10 +56,11 @@ static int nft_message_new(sd_netlink *nfnl, sd_netlink_message **ret, int famil
         m->hdr->nlmsg_len = size;
         m->hdr->nlmsg_type = NFNL_SUBSYS_NFTABLES << 8 | type;
 
-        nfh = NLMSG_DATA(m->hdr);
-        nfh->nfgen_family = family;
-        nfh->version = NFNETLINK_V0;
-        nfh->res_id = nfnl->serial;
+        *(struct nfgenmsg*) NLMSG_DATA(m->hdr) = (struct nfgenmsg) {
+                .nfgen_family = family,
+                .version = NFNETLINK_V0,
+                .res_id = nfnl->serial,
+        };
 
         *ret = TAKE_PTR(m);
         return 0;
@@ -68,17 +68,17 @@ static int nft_message_new(sd_netlink *nfnl, sd_netlink_message **ret, int famil
 
 static int sd_nfnl_message_batch(sd_netlink *nfnl, sd_netlink_message **ret, int v) {
         _cleanup_(sd_netlink_message_unrefp) sd_netlink_message *m = NULL;
-        struct nfgenmsg *nfh;
         int r;
 
         r = message_new(nfnl, &m, v);
         if (r < 0)
                 return r;
 
-        nfh = NLMSG_DATA(m->hdr);
-        nfh->nfgen_family = AF_UNSPEC;
-        nfh->version = NFNETLINK_V0;
-        nfh->res_id = NFNL_SUBSYS_NFTABLES;
+        *(struct nfgenmsg*) NLMSG_DATA(m->hdr) = (struct nfgenmsg) {
+                .nfgen_family = AF_UNSPEC,
+                .version = NFNETLINK_V0,
+                .res_id = NFNL_SUBSYS_NFTABLES,
+        };
 
         *ret = TAKE_PTR(m);
         return r;