[LEDE-DEV] [PATCH] umdns: Replace unnecessary memset calls with {}.
Arjen de Korte
arjen+lede at de-korte.org
Wed Nov 8 12:17:47 PST 2017
Citeren Rosen Penev <rosenp at gmail.com>:
> Less verbose.
And uses a GCC extension which makes it less portable. ISO C forbids
empty initializer braces [1]. See for yourself by adding the -pedantic
flag to your CFLAGS. The correct way to initialize to all-zeros is
therefore { 0 }.
[1] ISO/IEC 9899:201x, paragraph 6.7.9 Initialization, clause 21
"If there are fewer initializers in a brace-enclosed list than there
are elements or members
of an aggregate, or fewer characters in a string literal used to
initialize an array of known
size than there are elements in the array, the remainder of
the aggregate shall be
initialized implicitly the same as objects that have static storage duration."
> Signed-off-by: Rosen Penev <rosenp at gmail.com>
>
> v2: some of those memset calls are needed. Also replace { 0 } with {}.
> ---
> interface.c | 16 ++++++----------
> 1 file changed, 6 insertions(+), 10 deletions(-)
>
> diff --git a/interface.c b/interface.c
> index 7f814d2..deabcbb 100644
> --- a/interface.c
> +++ b/interface.c
> @@ -186,7 +186,7 @@ read_socket4(struct uloop_fd *u, unsigned int events)
> struct iovec iov[1];
> char cmsg[CMSG_SPACE(sizeof(struct in_pktinfo)) +
> CMSG_SPACE(sizeof(int)) + 1];
> struct cmsghdr *cmsgptr;
> - struct msghdr msg;
> + struct msghdr msg = {};
> socklen_t len;
> struct sockaddr_in from;
> int flags = 0, ifindex = -1;
> @@ -202,7 +202,6 @@ read_socket4(struct uloop_fd *u, unsigned int events)
> iov[0].iov_base = buffer;
> iov[0].iov_len = sizeof(buffer);
>
> - memset(&msg, 0, sizeof(msg));
> msg.msg_name = (struct sockaddr *) &from;
> msg.msg_namelen = sizeof(struct sockaddr_in);
> msg.msg_iov = iov;
> @@ -260,7 +259,7 @@ read_socket6(struct uloop_fd *u, unsigned int events)
> struct iovec iov[1];
> char cmsg6[CMSG_SPACE(sizeof(struct in6_pktinfo)) +
> CMSG_SPACE(sizeof(int)) + 1];
> struct cmsghdr *cmsgptr;
> - struct msghdr msg;
> + struct msghdr msg = {};
> socklen_t len;
> struct sockaddr_in6 from;
> int flags = 0, ifindex = -1;
> @@ -276,7 +275,6 @@ read_socket6(struct uloop_fd *u, unsigned int events)
> iov[0].iov_base = buffer;
> iov[0].iov_len = sizeof(buffer);
>
> - memset(&msg, 0, sizeof(msg));
> msg.msg_name = (struct sockaddr *) &from;
> msg.msg_namelen = sizeof(struct sockaddr_in6);
> msg.msg_iov = iov;
> @@ -327,17 +325,16 @@ read_socket6(struct uloop_fd *u, unsigned int events)
> static int
> interface_mcast_setup4(struct interface *iface)
> {
> - struct ip_mreqn mreq;
> + struct ip_mreqn mreq = {};
> uint8_t ttl = 255;
> int no = 0;
> - struct sockaddr_in sa = { 0 };
> + struct sockaddr_in sa = {};
> int fd = iface->fd.fd;
>
> sa.sin_family = AF_INET;
> sa.sin_port = htons(MCAST_PORT);
> inet_pton(AF_INET, MCAST_ADDR, &sa.sin_addr);
>
> - memset(&mreq, 0, sizeof(mreq));
> mreq.imr_address.s_addr = iface->v4_addr.s_addr;
> mreq.imr_multiaddr = sa.sin_addr;
> mreq.imr_ifindex = iface->ifindex;
> @@ -368,17 +365,16 @@ interface_mcast_setup4(struct interface *iface)
> static int
> interface_socket_setup6(struct interface *iface)
> {
> - struct ipv6_mreq mreq;
> + struct ipv6_mreq mreq = {};
> int ttl = 255;
> int no = 0;
> - struct sockaddr_in6 sa = { 0 };
> + struct sockaddr_in6 sa = {};
> int fd = iface->fd.fd;
>
> sa.sin6_family = AF_INET6;
> sa.sin6_port = htons(MCAST_PORT);
> inet_pton(AF_INET6, MCAST_ADDR6, &sa.sin6_addr);
>
> - memset(&mreq, 0, sizeof(mreq));
> mreq.ipv6mr_multiaddr = sa.sin6_addr;
> mreq.ipv6mr_interface = iface->ifindex;
More information about the Lede-dev
mailing list