[monitoring-plugins] check_icmp: process protocol version args first
Jacob Hansen
git at monitoring-plugins.org
Tue Feb 19 15:50:16 CET 2019
Module: monitoring-plugins
Branch: master
Commit: e3ade3374a99155c8c70d89a8d8116240d5c8df0
Author: Jacob Hansen <jhansen at op5.com>
Date: Mon Dec 3 14:19:27 2018 +0000
URL: https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=e3ade33
check_icmp: process protocol version args first
Detection of protocol version is in the previous patch implemented in
the add_target() function, which is called when adding the -H command
line argument. That means that if a protocal version argument (-4, -6)
is added after the -H then the protocol version might be incorrectly
set.
This patch ensures that we first process the protocol version arguments,
and then we process the rest of the arguments.
Signed-off-by: Jacob Hansen <jhansen at op5.com>
---
plugins-root/check_icmp.c | 32 ++++++++++++++++++++++----------
1 file changed, 22 insertions(+), 10 deletions(-)
diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c
index cab69fd..b978ee1 100644
--- a/plugins-root/check_icmp.c
+++ b/plugins-root/check_icmp.c
@@ -460,6 +460,28 @@ main(int argc, char **argv)
packets = 5;
}
+ /* Parse protocol arguments first */
+ for(i = 1; i < argc; i++) {
+ while((arg = getopt(argc, argv, "vhVw:c:n:p:t:H:s:i:b:I:l:m:64")) != EOF) {
+ unsigned short size;
+ switch(arg) {
+ case '4':
+ address_family = AF_INET;
+ break;
+ case '6':
+#ifdef USE_IPV6
+ address_family = AF_INET6;
+#else
+ usage (_("IPv6 support not available\n"));
+#endif
+ break;
+ }
+ }
+ }
+
+ /* Reset argument scanning */
+ optind = 1;
+
/* parse the arguments */
for(i = 1; i < argc; i++) {
while((arg = getopt(argc, argv, "vhVw:c:n:p:t:H:s:i:b:I:l:m:64")) != EOF) {
@@ -524,16 +546,6 @@ main(int argc, char **argv)
print_help ();
exit (STATE_UNKNOWN);
break;
- case '4':
- address_family = AF_INET;
- break;
- case '6':
-#ifdef USE_IPV6
- address_family = AF_INET6;
-#else
- usage (_("IPv6 support not available\n"));
-#endif
- break;
}
}
}
More information about the Commits
mailing list