add --ip-version option to force either IPv4 or IPv6 analysis

Proposed-by: Jeff Balley <jeffrey.bailey@bt.com>
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2017-09-09 10:09:35 +01:00
parent b9cff0d814
commit 782f63c3ad
No known key found for this signature in database
GPG key ID: A9553245FDE9B739
3 changed files with 23 additions and 2 deletions

View file

@ -108,7 +108,8 @@ int main(int argc, char **argv)
OPT_CRIT,
OPT_MINSIZE,
OPT_WARN_COUNT,
OPT_CRIT_COUNT
OPT_CRIT_COUNT,
OPT_SET_IPV
};
int ret_val;
@ -130,6 +131,7 @@ int main(int argc, char **argv)
{"minsize", required_argument, NULL, OPT_MINSIZE},
{"perfdata", no_argument, NULL, 'p'},
{"all-as-shared", no_argument, NULL, 'A'},
{"ip-version", required_argument, NULL, OPT_SET_IPV},
{NULL, 0, NULL, 0}
};
@ -165,6 +167,7 @@ int main(int argc, char **argv)
/* Treat single networks as shared with network CIDR as name */
config.all_as_shared = 0;
prepare_memory();
set_ipv_functions(IPvUNKNOWN);
/* Parse command line options */
while (1) {
int c;
@ -240,6 +243,18 @@ int main(int argc, char **argv)
case OPT_MINSIZE:
config.minsize = strtod_or_err(optarg, "illegal argument");
break;
case OPT_SET_IPV:
switch(optarg[0]) {
case '4':
set_ipv_functions(IPv4);
break;
case '6':
set_ipv_functions(IPv6);
break;
default:
error(EXIT_FAILURE, 0, "unknown --ip-version argument: %s", optarg);
}
break;
case 'p':
/* Print additional performance data in alarming mode */
config.perfdata = 1;
@ -301,7 +316,6 @@ int main(int argc, char **argv)
error(EXIT_FAILURE, 0, "unknown output format: %s", quote(print_mac_addreses_tmp));
}
/* Do the job */
set_ipv_functions(IPvUNKNOWN);
parse_config(1, config.dhcpdconf_file, shared_networks);
parse_leases();
prepare_data();

View file

@ -476,6 +476,7 @@ void __attribute__ ((__noreturn__)) usage(int status)
fputs( " --snet-alarms suppress range alarms that are part of a shared-net\n", out);
fputs( " -p, --perfdata print additional perfdata in alarming mode\n", out);
fputs( " -A, --all-as-shared treat single subnets as shared-network with CIDR as their name\n", out);
fputs( " --ip-version=4|6 force analysis to use either IPv4 or IPv6 functions\n", out);
fputs( " -v, --version output version information and exit\n", out);
fputs( " -h, --help display this help and exit\n", out);
fputs( "\n", out);