[monitoring-plugins] Don't mix variable declarations and code
Holger Weiss
git at monitoring-plugins.org
Fri Nov 28 16:30:08 CET 2014
Module: monitoring-plugins
Branch: master
Commit: 8e5118e0cba939a3a2854204ee3169466190018f
Author: Holger Weiss <holger at zedat.fu-berlin.de>
Date: Fri Nov 28 15:35:38 2014 +0100
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=8e5118e
Don't mix variable declarations and code
We still support pre-C99 compilers.
---
plugins-root/check_icmp.c | 38 +++++++++++++++++++++++---------------
1 file changed, 23 insertions(+), 15 deletions(-)
diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c
index d2f637f..0771325 100644
--- a/plugins-root/check_icmp.c
+++ b/plugins-root/check_icmp.c
@@ -378,6 +378,9 @@ main(int argc, char **argv)
int icmp_sockerrno, udp_sockerrno, tcp_sockerrno;
int result;
struct rta_host *host;
+#ifdef SO_TIMESTAMP
+ int on = 1;
+#endif
setlocale (LC_ALL, "");
bindtextdomain (PACKAGE, LOCALEDIR);
@@ -403,7 +406,6 @@ main(int argc, char **argv)
setuid(getuid());
#ifdef SO_TIMESTAMP
- int on = 1;
if(setsockopt(icmp_sock, SOL_SOCKET, SO_TIMESTAMP, &on, sizeof(on)))
if(debug) printf("Warning: no SO_TIMESTAMP support\n");
#endif // SO_TIMESTAMP
@@ -828,6 +830,8 @@ send_icmp_ping(int sock, struct rta_host *host)
} packet = { NULL };
long int len;
struct icmp_ping_data data;
+ struct msghdr hdr;
+ struct iovec iov;
struct timeval tv;
struct sockaddr *addr;
@@ -863,16 +867,16 @@ send_icmp_ping(int sock, struct rta_host *host)
printf("Sending ICMP echo-request of len %u, id %u, seq %u, cksum 0x%X to host %s\n",
sizeof(data), ntohs(packet.icp->icmp_id), ntohs(packet.icp->icmp_seq), packet.icp->icmp_cksum, host->name);
- struct msghdr hdr;
- memset(&hdr, 0, sizeof(hdr));
- hdr.msg_name = addr;
- hdr.msg_namelen = sizeof(struct sockaddr);
- struct iovec iov;
memset(&iov, 0, sizeof(iov));
iov.iov_base = packet.buf;
iov.iov_len = icmp_pkt_size;
+
+ memset(&hdr, 0, sizeof(hdr));
+ hdr.msg_name = addr;
+ hdr.msg_namelen = sizeof(struct sockaddr);
hdr.msg_iov = &iov;
hdr.msg_iovlen = 1;
+
len = sendmsg(sock, &hdr, MSG_CONFIRM);
if(len < 0 || (unsigned int)len != icmp_pkt_size) {
@@ -892,9 +896,15 @@ recvfrom_wto(int sock, void *buf, unsigned int len, struct sockaddr *saddr,
u_int *timo, struct timeval* tv)
{
u_int slen;
- int n;
+ int n, ret;
struct timeval to, then, now;
fd_set rd, wr;
+ char ans_data[4096];
+ struct msghdr hdr;
+ struct iovec iov;
+#ifdef SO_TIMESTAMP
+ struct cmsghdr* chdr;
+#endif
if(!*timo) {
if(debug) printf("*timo is not\n");
@@ -918,22 +928,20 @@ recvfrom_wto(int sock, void *buf, unsigned int len, struct sockaddr *saddr,
slen = sizeof(struct sockaddr);
- struct msghdr hdr;
- memset(&hdr, 0, sizeof(hdr));
- hdr.msg_name = saddr;
- hdr.msg_namelen = slen;
- struct iovec iov;
memset(&iov, 0, sizeof(iov));
iov.iov_base = buf;
iov.iov_len = len;
+
+ memset(&hdr, 0, sizeof(hdr));
+ hdr.msg_name = saddr;
+ hdr.msg_namelen = slen;
hdr.msg_iov = &iov;
hdr.msg_iovlen = 1;
- char ans_data[4096];
hdr.msg_control = ans_data;
hdr.msg_controllen = sizeof(ans_data);
- int ret = recvmsg(sock, &hdr, 0);
+
+ ret = recvmsg(sock, &hdr, 0);
#ifdef SO_TIMESTAMP
- struct cmsghdr* chdr;
for(chdr = CMSG_FIRSTHDR(&hdr); chdr; chdr = CMSG_NXTHDR(&hdr, chdr)) {
if(chdr->cmsg_level == SOL_SOCKET
&& chdr->cmsg_type == SO_TIMESTAMP
More information about the Commits
mailing list