aboutsummaryrefslogtreecommitdiff
path: root/plugins-root/check_dhcp.c
diff options
context:
space:
mode:
authorGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2015-10-08 12:52:10 +0200
committerGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2015-10-08 12:52:10 +0200
commit37928b52a59f80183004cc36b646aec5f9546ff5 (patch)
tree1d93f5906b99cfc78be4a1a7ee7c9bc0058d6af0 /plugins-root/check_dhcp.c
parent934fa89f46789f40834d276a87b939c5df2e6c4f (diff)
parent5a9ca0590f847ef96421912bd2562292580a7d7c (diff)
downloadmonitoring-plugins-37928b52a59f80183004cc36b646aec5f9546ff5.tar.gz
Merge branch 'maint'
* maint: sslutils: Remove superfluous parenthesis for sslv3 function too sslutils: remove superfluous parenthesis check_snmp: modified tests check_snmp.c: switched DEFAULT_TIMEOUT to DEFAULT_SOCKET_TIMEOUT (provided by utils.h), already used by help description, see issue #1318 install snmpd on travis tests enable libtab on travis builds add perl snmp to travis dependencies NEWS: Mention check_ups performance data fix Fix incorrect performance data thresholds check_dhcp: Fix option parsing Fixes segfaults when running via monitoring worker (off-by-one) travis: fix http test host sslutils: Check if OpenSSL supports SSLv3. Conflicts: NEWS plugins/sslutils.c
Diffstat (limited to 'plugins-root/check_dhcp.c')
-rw-r--r--plugins-root/check_dhcp.c43
1 files changed, 12 insertions, 31 deletions
diff --git a/plugins-root/check_dhcp.c b/plugins-root/check_dhcp.c
index 3723e61a..d8afb172 100644
--- a/plugins-root/check_dhcp.c
+++ b/plugins-root/check_dhcp.c
@@ -229,7 +229,7 @@ struct in_addr requested_address;
int process_arguments(int, char **);
int call_getopt(int, char **);
-int validate_arguments(void);
+int validate_arguments(int, int);
void print_usage(void);
void print_help(void);
@@ -1059,29 +1059,19 @@ int get_results(void){
/* process command-line arguments */
int process_arguments(int argc, char **argv){
- int c;
+ int arg_index;
if(argc<1)
return ERROR;
- c=0;
- while((c+=(call_getopt(argc-c,&argv[c])))<argc){
-
- /*
- if(is_option(argv[c]))
- continue;
- */
- }
-
- return validate_arguments();
+ arg_index = call_getopt(argc,argv);
+ return validate_arguments(argc,arg_index);
}
int call_getopt(int argc, char **argv){
- int c=0;
- int i=0;
-
+ extern int optind;
int option_index = 0;
static struct option long_options[] =
{
@@ -1098,25 +1088,14 @@ int call_getopt(int argc, char **argv){
};
while(1){
- c=getopt_long(argc,argv,"+hVvt:s:r:t:i:m:u",long_options,&option_index);
+ int c=0;
- i++;
+ c=getopt_long(argc,argv,"+hVvt:s:r:t:i:m:u",long_options,&option_index);
if(c==-1||c==EOF||c==1)
break;
switch(c){
- case 'w':
- case 'r':
- case 't':
- case 'i':
- i++;
- break;
- default:
- break;
- }
-
- switch(c){
case 's': /* DHCP server address */
resolve_host(optarg,&dhcp_ip);
@@ -1181,12 +1160,14 @@ int call_getopt(int argc, char **argv){
break;
}
}
-
- return i;
+ return optind;
}
-int validate_arguments(void){
+int validate_arguments(int argc, int arg_index){
+
+ if(argc-optind > 0)
+ usage(_("Got unexpected non-option argument"));
return OK;
}