]> granicus.if.org Git - strace/commitdiff
Consistently use C99 designated initializers in the new netlink code
authorDmitry V. Levin <ldv@altlinux.org>
Fri, 21 Nov 2014 19:59:16 +0000 (19:59 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Fri, 21 Nov 2014 19:59:16 +0000 (19:59 +0000)
* socketutils.c (send_query, receive_responses): Use designated
initializers for sockaddr_nl, nlmsghdr, and inet_diag_req_v2 structures.
* tests/netlink_inet_diag.c (send_query, check_responses): Likewise.

socketutils.c
tests/netlink_inet_diag.c

index d5cddf0c7f71ab73b12a027fa7da9e424b80bef5..80abed55b318abb88106647cc0381ee41936b4c3 100644 (file)
@@ -9,11 +9,24 @@
 static bool
 send_query(const int fd, const int family, const int proto)
 {
-       struct sockaddr_nl nladdr;
+       struct sockaddr_nl nladdr = {
+               .nl_family = AF_NETLINK
+       };
        struct {
                struct nlmsghdr nlh;
                struct inet_diag_req_v2 idr;
-       } req;
+       } req = {
+               .nlh = {
+                       .nlmsg_len = sizeof(req),
+                       .nlmsg_type = SOCK_DIAG_BY_FAMILY,
+                       .nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST
+               },
+               .idr = {
+                       .sdiag_family = family,
+                       .sdiag_protocol = proto,
+                       .idiag_states = -1
+               }
+       };
        struct iovec iov = {
                .iov_base = &req,
                .iov_len = sizeof(req)
@@ -25,17 +38,6 @@ send_query(const int fd, const int family, const int proto)
                .msg_iovlen = 1
        };
 
-       memset(&nladdr, 0, sizeof(nladdr));
-       nladdr.nl_family = AF_NETLINK;
-
-       memset(&req, 0, sizeof(req));
-       req.nlh.nlmsg_len = sizeof(req);
-       req.nlh.nlmsg_type = SOCK_DIAG_BY_FAMILY;
-       req.nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST;
-       req.idr.sdiag_family = family;
-       req.idr.sdiag_protocol = proto;
-       req.idr.idiag_states = -1;
-
        for (;;) {
                if (sendmsg(fd, &msg, 0) < 0) {
                        if (errno == EINTR)
@@ -96,15 +98,14 @@ static bool
 receive_responses(const int fd, const unsigned long inode)
 {
        static char buf[8192];
-       struct sockaddr_nl nladdr;
+       struct sockaddr_nl nladdr = {
+               .nl_family = AF_NETLINK
+       };
        struct iovec iov = {
                .iov_base = buf,
                .iov_len = sizeof(buf)
        };
 
-       memset(&nladdr, 0, sizeof(nladdr));
-       nladdr.nl_family = AF_NETLINK;
-
        for (;;) {
                ssize_t ret;
                struct nlmsghdr *h;
@@ -112,10 +113,7 @@ receive_responses(const int fd, const unsigned long inode)
                        .msg_name = (void*)&nladdr,
                        .msg_namelen = sizeof(nladdr),
                        .msg_iov = &iov,
-                       .msg_iovlen = 1,
-                       .msg_control = NULL,
-                       .msg_controllen = 0,
-                       .msg_flags = 0
+                       .msg_iovlen = 1
                };
 
                ret = recvmsg(fd, &msg, 0);
index ffd3591ad57513efff16d7502042c030330f3f80..7d41b0b71386c5ef760e5ad6c92e63408b6d996d 100644 (file)
@@ -9,11 +9,24 @@
 static int
 send_query(const int fd, const int family, const int proto)
 {
-       struct sockaddr_nl nladdr;
+       struct sockaddr_nl nladdr = {
+               .nl_family = AF_NETLINK
+       };
        struct {
                struct nlmsghdr nlh;
                struct inet_diag_req_v2 idr;
-       } req;
+       } req = {
+               .nlh = {
+                       .nlmsg_len = sizeof(req),
+                       .nlmsg_type = SOCK_DIAG_BY_FAMILY,
+                       .nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST
+               },
+               .idr = {
+                       .sdiag_family = family,
+                       .sdiag_protocol = proto,
+                       .idiag_states = -1
+               }
+       };
        struct iovec iov = {
                .iov_base = &req,
                .iov_len = sizeof(req)
@@ -25,17 +38,6 @@ send_query(const int fd, const int family, const int proto)
                .msg_iovlen = 1
        };
 
-       memset(&nladdr, 0, sizeof(nladdr));
-       nladdr.nl_family = AF_NETLINK;
-
-       memset(&req, 0, sizeof(req));
-       req.nlh.nlmsg_len = sizeof(req);
-       req.nlh.nlmsg_type = SOCK_DIAG_BY_FAMILY;
-       req.nlh.nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST;
-       req.idr.sdiag_family = family;
-       req.idr.sdiag_protocol = proto;
-       req.idr.idiag_states = -1;
-
        return sendmsg(fd, &msg, 0) > 0;
 }
 
@@ -43,23 +45,18 @@ static int
 check_responses(const int fd)
 {
        static char buf[8192];
-       struct sockaddr_nl nladdr;
+       struct sockaddr_nl nladdr = {
+               .nl_family = AF_NETLINK
+       };
        struct iovec iov = {
                .iov_base = buf,
                .iov_len = sizeof(buf)
        };
-
-       memset(&nladdr, 0, sizeof(nladdr));
-       nladdr.nl_family = AF_NETLINK;
-
        struct msghdr msg = {
                .msg_name = (void*)&nladdr,
                .msg_namelen = sizeof(nladdr),
                .msg_iov = &iov,
-               .msg_iovlen = 1,
-               .msg_control = NULL,
-               .msg_controllen = 0,
-               .msg_flags = 0
+               .msg_iovlen = 1
        };
 
        ssize_t ret = recvmsg(fd, &msg, 0);