aboutsummaryrefslogtreecommitdiff
path: root/plugins-root
diff options
context:
space:
mode:
authorGravatar Jacob Hansen <jhansen@op5.com> 2018-12-03 14:19:27 +0000
committerGravatar Jacob Hansen <jhansen@op5.com> 2018-12-07 09:51:21 +0000
commite3ade3374a99155c8c70d89a8d8116240d5c8df0 (patch)
tree56507af1512bcaa859b7e24f43048c2227198efb /plugins-root
parent8edac9421f8ce28ab51917de4e056ac609eadd49 (diff)
downloadmonitoring-plugins-e3ade3374a99155c8c70d89a8d8116240d5c8df0.tar.gz
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@op5.com>
Diffstat (limited to 'plugins-root')
-rw-r--r--plugins-root/check_icmp.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/plugins-root/check_icmp.c b/plugins-root/check_icmp.c
index cab69fda..b978ee1e 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;
}
}
}