From: Dmitry V. Levin Date: Fri, 21 Nov 2014 19:59:16 +0000 (+0000) Subject: Consistently use C99 designated initializers in the new netlink code X-Git-Tag: v4.10~360 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=af534b8d7a28ce6b2aaa6a0be1b5da20dbfe7b45;p=strace Consistently use C99 designated initializers in the new netlink code * 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. --- diff --git a/socketutils.c b/socketutils.c index d5cddf0c..80abed55 100644 --- a/socketutils.c +++ b/socketutils.c @@ -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); diff --git a/tests/netlink_inet_diag.c b/tests/netlink_inet_diag.c index ffd3591a..7d41b0b7 100644 --- a/tests/netlink_inet_diag.c +++ b/tests/netlink_inet_diag.c @@ -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);