mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-06-09 08:42:17 -04:00
Drop the weird and undocumented behaviour of using positional argument
parsing instead of getopt(3) if 8 command line arguments were given (as suggested by Matthias) and check whether all required arguments have been specified in order to spit out proper error messages and to avoid a possible segfault (as suggested by Thomas). git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1800 f882894a-f735-0410-b71e-b25c423dba1c
This commit is contained in:
parent
0b66867288
commit
faf593d23a
2 changed files with 12 additions and 24 deletions
2
NEWS
2
NEWS
|
|
@ -29,6 +29,8 @@ This file documents the major additions and syntax changes between releases.
|
|||
- enforce a full path for the command to run
|
||||
The "negate" utility can now remap custom states
|
||||
Check_radius now supports radiusclient-ng
|
||||
The (undocumented) positional parameter parsing which check_radius used
|
||||
instead of getopt(3) if 8 arguments were given is no longer available
|
||||
Check_by_ssh now supports multiline output
|
||||
IPv6 support can now be disabled using ./configure --without-ipv6
|
||||
Fix check_ntp now honor ntp flags
|
||||
|
|
|
|||
|
|
@ -225,30 +225,6 @@ process_arguments (int argc, char **argv)
|
|||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
if (argc < 2)
|
||||
return ERROR;
|
||||
|
||||
if (argc == 9) {
|
||||
config_file = argv[1];
|
||||
username = argv[2];
|
||||
password = argv[3];
|
||||
if (is_intpos (argv[4]))
|
||||
timeout_interval = atoi (argv[4]);
|
||||
else
|
||||
usage2 (_("Timeout interval must be a positive integer"), optarg);
|
||||
if (is_intpos (argv[5]))
|
||||
retries = atoi (argv[5]);
|
||||
else
|
||||
usage4 (_("Number of retries must be a positive integer"));
|
||||
server = argv[6];
|
||||
if (is_intpos (argv[7]))
|
||||
port = atoi (argv[7]);
|
||||
else
|
||||
usage4 (_("Port must be a positive integer"));
|
||||
expect = argv[8];
|
||||
return OK;
|
||||
}
|
||||
|
||||
while (1) {
|
||||
c = getopt_long (argc, argv, "+hVvH:P:F:u:p:n:t:r:e:", longopts,
|
||||
&option);
|
||||
|
|
@ -309,6 +285,16 @@ process_arguments (int argc, char **argv)
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (server == NULL)
|
||||
usage4 (_("Host not specified"));
|
||||
if (username == NULL)
|
||||
usage4 (_("User not specified"));
|
||||
if (password == NULL)
|
||||
usage4 (_("Password not specified"));
|
||||
if (config_file == NULL)
|
||||
usage4 (_("Configuration file not specified"));
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue