diff options
-rw-r--r-- | Makefile.am | 1 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | lib/Makefile.am | 9 | ||||
-rw-r--r-- | lib/tests/.cvsignore (renamed from plugins/tests/.cvsignore) | 0 | ||||
-rw-r--r-- | lib/tests/Makefile.am (renamed from plugins/tests/Makefile.am) | 4 | ||||
-rw-r--r-- | lib/tests/README (renamed from plugins/tests/README) | 0 | ||||
-rw-r--r-- | lib/tests/test_disk.c (renamed from plugins/tests/test_disk.c) | 0 | ||||
-rwxr-xr-x | lib/tests/test_disk.t (renamed from plugins/tests/test_disk.t) | 0 | ||||
-rw-r--r-- | lib/tests/test_utils.c (renamed from plugins/tests/test_utils.c) | 9 | ||||
-rwxr-xr-x | lib/tests/test_utils.t (renamed from plugins/tests/test_utils.t) | 0 | ||||
-rw-r--r-- | plugins/Makefile.am | 7 | ||||
-rw-r--r-- | plugins/check_disk.c | 36 | ||||
-rw-r--r-- | plugins/check_dns.c | 1 | ||||
-rw-r--r-- | plugins/check_mysql.c | 1 | ||||
-rw-r--r-- | plugins/check_mysql_query.c | 1 | ||||
-rw-r--r-- | plugins/utils.c | 191 | ||||
-rw-r--r-- | plugins/utils.h | 25 | ||||
-rw-r--r-- | plugins/utils_disk.c | 141 | ||||
-rw-r--r-- | plugins/utils_disk.h | 30 |
19 files changed, 37 insertions, 421 deletions
diff --git a/Makefile.am b/Makefile.am index 28367a9..a45758a 100644 --- a/Makefile.am +++ b/Makefile.am | |||
@@ -21,6 +21,7 @@ install-root: | |||
21 | cd plugins-root && $(MAKE) $@ | 21 | cd plugins-root && $(MAKE) $@ |
22 | 22 | ||
23 | test: | 23 | test: |
24 | cd lib && $(MAKE) test | ||
24 | cd plugins; $(MAKE) test | 25 | cd plugins; $(MAKE) test |
25 | cd plugins-scripts; $(MAKE) test | 26 | cd plugins-scripts; $(MAKE) test |
26 | 27 | ||
diff --git a/configure.in b/configure.in index 54d5700..32ab396 100644 --- a/configure.in +++ b/configure.in | |||
@@ -1699,7 +1699,7 @@ AC_OUTPUT( | |||
1699 | lib/Makefile | 1699 | lib/Makefile |
1700 | m4/Makefile | 1700 | m4/Makefile |
1701 | plugins/Makefile | 1701 | plugins/Makefile |
1702 | plugins/tests/Makefile | 1702 | lib/tests/Makefile |
1703 | plugins-root/Makefile | 1703 | plugins-root/Makefile |
1704 | plugins-scripts/Makefile | 1704 | plugins-scripts/Makefile |
1705 | plugins-scripts/subst | 1705 | plugins-scripts/subst |
diff --git a/lib/Makefile.am b/lib/Makefile.am index 9a8991e..0f40bf1 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am | |||
@@ -1,5 +1,7 @@ | |||
1 | ## Process this file with automake to produce Makefile.in | 1 | ## Process this file with automake to produce Makefile.in |
2 | 2 | ||
3 | SUBDIRS = tests | ||
4 | |||
3 | noinst_LIBRARIES = libcoreutils.a libnagiosplug.a | 5 | noinst_LIBRARIES = libcoreutils.a libnagiosplug.a |
4 | 6 | ||
5 | # Will auto pick up fsusage.c mountlist.c | 7 | # Will auto pick up fsusage.c mountlist.c |
@@ -39,13 +41,16 @@ other_coreutils_files = \ | |||
39 | libcoreutils_a_LIBADD = $(LIBOBJS) | 41 | libcoreutils_a_LIBADD = $(LIBOBJS) |
40 | libcoreutils_a_DEPENDENCIES = $(libcoreutils_a_LIBADD) | 42 | libcoreutils_a_DEPENDENCIES = $(libcoreutils_a_LIBADD) |
41 | 43 | ||
42 | libnagiosplug_a_SOURCES = snprintf.c | 44 | libnagiosplug_a_SOURCES = snprintf.c utils_base.c utils_disk.c |
43 | 45 | ||
44 | INCLUDES = -I$(srcdir) -I$(top_srcdir)/intl | 46 | INCLUDES = -I$(srcdir) -I$(top_srcdir)/intl -I$(top_srcdir)/plugins |
45 | 47 | ||
46 | print_coreutil_files: | 48 | print_coreutil_files: |
47 | @echo $(libcoreutils_a_SOURCES) $(other_coreutils_files) $(EXTRA_DIST) | 49 | @echo $(libcoreutils_a_SOURCES) $(other_coreutils_files) $(EXTRA_DIST) |
48 | 50 | ||
51 | test: | ||
52 | cd tests && make test | ||
53 | |||
49 | # Below are from coreutil's lib/Makefile.am | 54 | # Below are from coreutil's lib/Makefile.am |
50 | BUILT_SOURCES = $(STDBOOL_H) | 55 | BUILT_SOURCES = $(STDBOOL_H) |
51 | EXTRA_DIST += stdbool_.h | 56 | EXTRA_DIST += stdbool_.h |
diff --git a/plugins/tests/.cvsignore b/lib/tests/.cvsignore index 6dc692f..6dc692f 100644 --- a/plugins/tests/.cvsignore +++ b/lib/tests/.cvsignore | |||
diff --git a/plugins/tests/Makefile.am b/lib/tests/Makefile.am index 741499d..63dee76 100644 --- a/plugins/tests/Makefile.am +++ b/lib/tests/Makefile.am | |||
@@ -5,7 +5,7 @@ noinst_PROGRAMS = @EXTRA_TEST@ | |||
5 | TESTS = @EXTRA_TEST@ | 5 | TESTS = @EXTRA_TEST@ |
6 | check_PROGRAMS = @EXTRA_TEST@ | 6 | check_PROGRAMS = @EXTRA_TEST@ |
7 | 7 | ||
8 | INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/intl | 8 | INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/intl -I$(top_srcdir)/plugins |
9 | 9 | ||
10 | EXTRA_PROGRAMS = test_utils test_disk | 10 | EXTRA_PROGRAMS = test_utils test_disk |
11 | 11 | ||
@@ -16,7 +16,7 @@ LIBS = @LIBINTL@ | |||
16 | test_utils_SOURCES = test_utils.c | 16 | test_utils_SOURCES = test_utils.c |
17 | test_utils_CFLAGS = -g -I.. | 17 | test_utils_CFLAGS = -g -I.. |
18 | test_utils_LDFLAGS = -L/usr/local/lib -ltap | 18 | test_utils_LDFLAGS = -L/usr/local/lib -ltap |
19 | test_utils_LDADD = ../utils.o | 19 | test_utils_LDADD = ../utils_base.o |
20 | 20 | ||
21 | test_disk_SOURCES = test_disk.c | 21 | test_disk_SOURCES = test_disk.c |
22 | test_disk_CFLAGS = -g -I.. | 22 | test_disk_CFLAGS = -g -I.. |
diff --git a/plugins/tests/README b/lib/tests/README index 66935e4..66935e4 100644 --- a/plugins/tests/README +++ b/lib/tests/README | |||
diff --git a/plugins/tests/test_disk.c b/lib/tests/test_disk.c index 8940236..8940236 100644 --- a/plugins/tests/test_disk.c +++ b/lib/tests/test_disk.c | |||
diff --git a/plugins/tests/test_disk.t b/lib/tests/test_disk.t index d32567a..d32567a 100755 --- a/plugins/tests/test_disk.t +++ b/lib/tests/test_disk.t | |||
diff --git a/plugins/tests/test_utils.c b/lib/tests/test_utils.c index 67c304a..aedc2a5 100644 --- a/plugins/tests/test_utils.c +++ b/lib/tests/test_utils.c | |||
@@ -18,11 +18,8 @@ | |||
18 | 18 | ||
19 | ******************************************************************************/ | 19 | ******************************************************************************/ |
20 | 20 | ||
21 | const char *progname = "utils"; | ||
22 | |||
23 | #include "common.h" | 21 | #include "common.h" |
24 | #include "utils.h" | 22 | #include "utils_base.h" |
25 | #include "popen.h" | ||
26 | 23 | ||
27 | #include "tap.h" | 24 | #include "tap.h" |
28 | 25 | ||
@@ -170,7 +167,3 @@ main (int argc, char **argv) | |||
170 | 167 | ||
171 | return exit_status(); | 168 | return exit_status(); |
172 | } | 169 | } |
173 | |||
174 | void print_usage() { | ||
175 | printf("Dummy"); | ||
176 | } | ||
diff --git a/plugins/tests/test_utils.t b/lib/tests/test_utils.t index 152eb71..152eb71 100755 --- a/plugins/tests/test_utils.t +++ b/lib/tests/test_utils.t | |||
diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 28793cd..9dd7184 100644 --- a/plugins/Makefile.am +++ b/plugins/Makefile.am | |||
@@ -1,7 +1,5 @@ | |||
1 | ## Process this file with automake to produce Makefile.in | 1 | ## Process this file with automake to produce Makefile.in |
2 | 2 | ||
3 | SUBDIRS = tests | ||
4 | |||
5 | VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t | 3 | VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t |
6 | 4 | ||
7 | INCLUDES = -I.. -I$(top_srcdir)/lib -I$(top_srcdir)/intl @LDAPINCLUDE@ @PGINCLUDE@ @SSLINCLUDE@ | 5 | INCLUDES = -I.. -I$(top_srcdir)/lib -I$(top_srcdir)/intl @LDAPINCLUDE@ @PGINCLUDE@ @SSLINCLUDE@ |
@@ -45,7 +43,6 @@ TESTS_ENVIRONMENT = perl -I $(top_builddir) -I $(top_srcdir) | |||
45 | TESTS = @PLUGIN_TEST@ | 43 | TESTS = @PLUGIN_TEST@ |
46 | 44 | ||
47 | test: | 45 | test: |
48 | cd tests && make test | ||
49 | perl -I $(top_builddir) -I $(top_srcdir) ../test.pl | 46 | perl -I $(top_builddir) -I $(top_srcdir) ../test.pl |
50 | 47 | ||
51 | AM_INSTALL_PROGRAM_FLAGS = @INSTALL_OPTS@ | 48 | AM_INSTALL_PROGRAM_FLAGS = @INSTALL_OPTS@ |
@@ -55,7 +52,7 @@ AM_INSTALL_PROGRAM_FLAGS = @INSTALL_OPTS@ | |||
55 | 52 | ||
56 | check_apt_LDADD = $(BASEOBJS) runcmd.o | 53 | check_apt_LDADD = $(BASEOBJS) runcmd.o |
57 | check_dig_LDADD = $(NETLIBS) runcmd.o | 54 | check_dig_LDADD = $(NETLIBS) runcmd.o |
58 | check_disk_LDADD = $(BASEOBJS) popen.o utils_disk.o | 55 | check_disk_LDADD = $(BASEOBJS) popen.o |
59 | check_dns_LDADD = $(NETLIBS) runcmd.o | 56 | check_dns_LDADD = $(NETLIBS) runcmd.o |
60 | check_dummy_LDADD = $(BASEOBJS) | 57 | check_dummy_LDADD = $(BASEOBJS) |
61 | check_fping_LDADD = $(NETLIBS) popen.o | 58 | check_fping_LDADD = $(NETLIBS) popen.o |
@@ -98,7 +95,7 @@ urlize_LDADD = $(BASEOBJS) popen.o | |||
98 | 95 | ||
99 | check_apt_DEPENDENCIES = check_apt.c $(BASEOBJS) runcmd.o $(DEPLIBS) | 96 | check_apt_DEPENDENCIES = check_apt.c $(BASEOBJS) runcmd.o $(DEPLIBS) |
100 | check_dig_DEPENDENCIES = check_dig.c $(NETOBJS) runcmd.o $(DEPLIBS) | 97 | check_dig_DEPENDENCIES = check_dig.c $(NETOBJS) runcmd.o $(DEPLIBS) |
101 | check_disk_DEPENDENCIES = check_disk.c $(BASEOBJS) popen.o utils_disk.o $(DEPLIBS) | 98 | check_disk_DEPENDENCIES = check_disk.c $(BASEOBJS) popen.o $(DEPLIBS) |
102 | check_dns_DEPENDENCIES = check_dns.c $(NETOBJS) runcmd.o $(DEPLIBS) | 99 | check_dns_DEPENDENCIES = check_dns.c $(NETOBJS) runcmd.o $(DEPLIBS) |
103 | check_dummy_DEPENDENCIES = check_dummy.c $(DEPLIBS) | 100 | check_dummy_DEPENDENCIES = check_dummy.c $(DEPLIBS) |
104 | check_fping_DEPENDENCIES = check_fping.c $(NETOBJS) popen.o $(DEPLIBS) | 101 | check_fping_DEPENDENCIES = check_fping.c $(NETOBJS) popen.o $(DEPLIBS) |
diff --git a/plugins/check_disk.c b/plugins/check_disk.c index 1423448..6beaf86 100644 --- a/plugins/check_disk.c +++ b/plugins/check_disk.c | |||
@@ -45,6 +45,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
45 | #include <assert.h> | 45 | #include <assert.h> |
46 | #include "popen.h" | 46 | #include "popen.h" |
47 | #include "utils.h" | 47 | #include "utils.h" |
48 | #include "utils_disk.h" | ||
48 | #include <stdarg.h> | 49 | #include <stdarg.h> |
49 | #include "fsusage.h" | 50 | #include "fsusage.h" |
50 | #include "mountlist.h" | 51 | #include "mountlist.h" |
@@ -52,7 +53,6 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
52 | # include <limits.h> | 53 | # include <limits.h> |
53 | #endif | 54 | #endif |
54 | 55 | ||
55 | #include "utils_disk.h" | ||
56 | 56 | ||
57 | /* If nonzero, show inode information. */ | 57 | /* If nonzero, show inode information. */ |
58 | static int inode_format; | 58 | static int inode_format; |
@@ -94,7 +94,7 @@ static struct name_list *fs_exclude_list; | |||
94 | 94 | ||
95 | static struct name_list *dp_exclude_list; | 95 | static struct name_list *dp_exclude_list; |
96 | 96 | ||
97 | static struct parameter_list *path_select_list; | 97 | static struct parameter_list *path_select_list = NULL; |
98 | 98 | ||
99 | /* Linked list of mounted filesystems. */ | 99 | /* Linked list of mounted filesystems. */ |
100 | static struct mount_entry *mount_list; | 100 | static struct mount_entry *mount_list; |
@@ -296,12 +296,17 @@ process_arguments (int argc, char **argv) | |||
296 | { | 296 | { |
297 | int c; | 297 | int c; |
298 | struct parameter_list *se; | 298 | struct parameter_list *se; |
299 | struct parameter_list **pathtail = &path_select_list; | ||
300 | struct parameter_list *temp_list; | 299 | struct parameter_list *temp_list; |
301 | int result = OK; | 300 | int result = OK; |
302 | struct stat *stat_buf; | 301 | struct stat *stat_buf; |
302 | char *warn_freespace = NULL; | ||
303 | char *crit_freespace = NULL; | ||
304 | char *warn_freespace_percent = NULL; | ||
305 | char *crit_freespace_percent = NULL; | ||
306 | char temp_string[MAX_INPUT_BUFFER]; | ||
303 | 307 | ||
304 | unsigned long l; | 308 | unsigned long l; |
309 | double f; | ||
305 | 310 | ||
306 | int option = 0; | 311 | int option = 0; |
307 | static struct option longopts[] = { | 312 | static struct option longopts[] = { |
@@ -355,6 +360,15 @@ process_arguments (int argc, char **argv) | |||
355 | usage2 (_("Timeout interval must be a positive integer"), optarg); | 360 | usage2 (_("Timeout interval must be a positive integer"), optarg); |
356 | } | 361 | } |
357 | case 'w': /* warning threshold */ | 362 | case 'w': /* warning threshold */ |
363 | /* | ||
364 | if (strstr(optarg, "%")) { | ||
365 | printf("Got percent with optarg=%s\n", optarg); | ||
366 | warn_freespace_percent = optarg; | ||
367 | } else { | ||
368 | warn_freespace = optarg; | ||
369 | } | ||
370 | break; | ||
371 | */ | ||
358 | if (is_intnonneg (optarg)) { | 372 | if (is_intnonneg (optarg)) { |
359 | w_df = atoi (optarg); | 373 | w_df = atoi (optarg); |
360 | break; | 374 | break; |
@@ -444,19 +458,13 @@ process_arguments (int argc, char **argv) | |||
444 | show_local_fs = 1; | 458 | show_local_fs = 1; |
445 | break; | 459 | break; |
446 | case 'p': /* select path */ | 460 | case 'p': /* select path */ |
447 | se = (struct parameter_list *) malloc (sizeof (struct parameter_list)); | 461 | se = np_add_parameter(&path_select_list, optarg); |
448 | se->name = optarg; | ||
449 | se->name_next = NULL; | ||
450 | se->w_df = w_df; | 462 | se->w_df = w_df; |
451 | se->c_df = c_df; | 463 | se->c_df = c_df; |
452 | se->w_dfp = w_dfp; | 464 | se->w_dfp = w_dfp; |
453 | se->c_dfp = c_dfp; | 465 | se->c_dfp = c_dfp; |
454 | se->w_idfp = w_idfp; | 466 | se->w_idfp = w_idfp; |
455 | se->c_idfp = c_idfp; | 467 | se->c_idfp = c_idfp; |
456 | se->found = 0; | ||
457 | se->found_len = 0; | ||
458 | *pathtail = se; | ||
459 | pathtail = &se->name_next; | ||
460 | break; | 468 | break; |
461 | case 'x': /* exclude path or partition */ | 469 | case 'x': /* exclude path or partition */ |
462 | np_add_name(&dp_exclude_list, optarg); | 470 | np_add_name(&dp_exclude_list, optarg); |
@@ -507,18 +515,13 @@ process_arguments (int argc, char **argv) | |||
507 | c_dfp = (100.0 - atof (argv[c++])); | 515 | c_dfp = (100.0 - atof (argv[c++])); |
508 | 516 | ||
509 | if (argc > c && path == NULL) { | 517 | if (argc > c && path == NULL) { |
510 | se = (struct parameter_list *) malloc (sizeof (struct parameter_list)); | 518 | se = np_add_parameter(&path_select_list, strdup(argv[c++])); |
511 | se->name = strdup (argv[c++]); | ||
512 | se->name_next = NULL; | ||
513 | se->w_df = w_df; | 519 | se->w_df = w_df; |
514 | se->c_df = c_df; | 520 | se->c_df = c_df; |
515 | se->w_dfp = w_dfp; | 521 | se->w_dfp = w_dfp; |
516 | se->c_dfp = c_dfp; | 522 | se->c_dfp = c_dfp; |
517 | se->w_idfp = w_idfp; | 523 | se->w_idfp = w_idfp; |
518 | se->c_idfp = c_idfp; | 524 | se->c_idfp = c_idfp; |
519 | se->found =0; | ||
520 | se->found_len = 0; | ||
521 | *pathtail = se; | ||
522 | } | 525 | } |
523 | 526 | ||
524 | if (path_select_list) { | 527 | if (path_select_list) { |
@@ -604,7 +607,6 @@ INPUT ERROR: C_DF (%lu) should be less than W_DF (%lu) and both should be greate | |||
604 | 607 | ||
605 | 608 | ||
606 | int | 609 | int |
607 | |||
608 | check_disk (double usp, uintmax_t free_disk, double uisp) | 610 | check_disk (double usp, uintmax_t free_disk, double uisp) |
609 | { | 611 | { |
610 | int result = STATE_UNKNOWN; | 612 | int result = STATE_UNKNOWN; |
diff --git a/plugins/check_dns.c b/plugins/check_dns.c index 081741a..6563e10 100644 --- a/plugins/check_dns.c +++ b/plugins/check_dns.c | |||
@@ -28,6 +28,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
28 | 28 | ||
29 | #include "common.h" | 29 | #include "common.h" |
30 | #include "utils.h" | 30 | #include "utils.h" |
31 | #include "utils_base.h" | ||
31 | #include "netutils.h" | 32 | #include "netutils.h" |
32 | #include "runcmd.h" | 33 | #include "runcmd.h" |
33 | 34 | ||
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index a47572d..8c7e4ef 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c | |||
@@ -23,6 +23,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
23 | 23 | ||
24 | #include "common.h" | 24 | #include "common.h" |
25 | #include "utils.h" | 25 | #include "utils.h" |
26 | #include "utils_base.h" | ||
26 | #include "netutils.h" | 27 | #include "netutils.h" |
27 | 28 | ||
28 | #include <mysql.h> | 29 | #include <mysql.h> |
diff --git a/plugins/check_mysql_query.c b/plugins/check_mysql_query.c index 404ca79..e129366 100644 --- a/plugins/check_mysql_query.c +++ b/plugins/check_mysql_query.c | |||
@@ -20,6 +20,7 @@ const char *email = "nagiosplug-devel@lists.sourceforge.net"; | |||
20 | 20 | ||
21 | #include "common.h" | 21 | #include "common.h" |
22 | #include "utils.h" | 22 | #include "utils.h" |
23 | #include "utils_base.h" | ||
23 | #include "netutils.h" | 24 | #include "netutils.h" |
24 | 25 | ||
25 | #include <mysql.h> | 26 | #include <mysql.h> |
diff --git a/plugins/utils.c b/plugins/utils.c index cb01341..2b3acce 100644 --- a/plugins/utils.c +++ b/plugins/utils.c | |||
@@ -16,6 +16,7 @@ | |||
16 | 16 | ||
17 | #include "common.h" | 17 | #include "common.h" |
18 | #include "utils.h" | 18 | #include "utils.h" |
19 | #include "utils_base.h" | ||
19 | #include <stdarg.h> | 20 | #include <stdarg.h> |
20 | #include <limits.h> | 21 | #include <limits.h> |
21 | 22 | ||
@@ -132,16 +133,6 @@ state_text (int result) | |||
132 | } | 133 | } |
133 | 134 | ||
134 | void | 135 | void |
135 | die (int result, const char *fmt, ...) | ||
136 | { | ||
137 | va_list ap; | ||
138 | va_start (ap, fmt); | ||
139 | vprintf (fmt, ap); | ||
140 | va_end (ap); | ||
141 | exit (result); | ||
142 | } | ||
143 | |||
144 | void | ||
145 | timeout_alarm_handler (int signo) | 136 | timeout_alarm_handler (int signo) |
146 | { | 137 | { |
147 | if (signo == SIGALRM) { | 138 | if (signo == SIGALRM) { |
@@ -266,156 +257,6 @@ is_option (char *str) | |||
266 | return FALSE; | 257 | return FALSE; |
267 | } | 258 | } |
268 | 259 | ||
269 | void set_range_start (range *this, double value) { | ||
270 | this->start = value; | ||
271 | this->start_infinity = FALSE; | ||
272 | } | ||
273 | |||
274 | void set_range_end (range *this, double value) { | ||
275 | this->end = value; | ||
276 | this->end_infinity = FALSE; | ||
277 | } | ||
278 | |||
279 | range | ||
280 | *parse_range_string (char *str) { | ||
281 | range *temp_range; | ||
282 | double start; | ||
283 | double end; | ||
284 | char *end_str; | ||
285 | |||
286 | temp_range = (range *) malloc(sizeof(range)); | ||
287 | |||
288 | /* Set defaults */ | ||
289 | temp_range->start = 0; | ||
290 | temp_range->start_infinity = FALSE; | ||
291 | temp_range->end = 0; | ||
292 | temp_range->end_infinity = TRUE; | ||
293 | temp_range->alert_on = OUTSIDE; | ||
294 | |||
295 | if (str[0] == '@') { | ||
296 | temp_range->alert_on = INSIDE; | ||
297 | str++; | ||
298 | } | ||
299 | |||
300 | end_str = index(str, ':'); | ||
301 | if (end_str != NULL) { | ||
302 | if (str[0] == '~') { | ||
303 | temp_range->start_infinity = TRUE; | ||
304 | } else { | ||
305 | start = strtod(str, NULL); /* Will stop at the ':' */ | ||
306 | set_range_start(temp_range, start); | ||
307 | } | ||
308 | end_str++; /* Move past the ':' */ | ||
309 | } else { | ||
310 | end_str = str; | ||
311 | } | ||
312 | end = strtod(end_str, NULL); | ||
313 | if (strcmp(end_str, "") != 0) { | ||
314 | set_range_end(temp_range, end); | ||
315 | } | ||
316 | |||
317 | if (temp_range->start_infinity == TRUE || | ||
318 | temp_range->end_infinity == TRUE || | ||
319 | temp_range->start <= temp_range->end) { | ||
320 | return temp_range; | ||
321 | } | ||
322 | free(temp_range); | ||
323 | return NULL; | ||
324 | } | ||
325 | |||
326 | /* returns 0 if okay, otherwise 1 */ | ||
327 | int | ||
328 | _set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_string) | ||
329 | { | ||
330 | thresholds *temp_thresholds = NULL; | ||
331 | |||
332 | temp_thresholds = malloc(sizeof(temp_thresholds)); | ||
333 | |||
334 | temp_thresholds->warning = NULL; | ||
335 | temp_thresholds->critical = NULL; | ||
336 | |||
337 | if (warn_string != NULL) { | ||
338 | if ((temp_thresholds->warning = parse_range_string(warn_string)) == NULL) { | ||
339 | return 1; | ||
340 | } | ||
341 | } | ||
342 | if (critical_string != NULL) { | ||
343 | if ((temp_thresholds->critical = parse_range_string(critical_string)) == NULL) { | ||
344 | return 1; | ||
345 | } | ||
346 | } | ||
347 | |||
348 | if (*my_thresholds != 0) { | ||
349 | /* printf("Freeing here: %d\n", *my_thresholds); */ | ||
350 | free(*my_thresholds); | ||
351 | } | ||
352 | *my_thresholds = temp_thresholds; | ||
353 | |||
354 | return 0; | ||
355 | } | ||
356 | |||
357 | void | ||
358 | set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_string) | ||
359 | { | ||
360 | if (_set_thresholds(my_thresholds, warn_string, critical_string) == 0) { | ||
361 | return; | ||
362 | } else { | ||
363 | usage(_("Range format incorrect")); | ||
364 | } | ||
365 | } | ||
366 | |||
367 | /* Returns TRUE if alert should be raised based on the range */ | ||
368 | int | ||
369 | check_range(double value, range *my_range) | ||
370 | { | ||
371 | int false = FALSE; | ||
372 | int true = TRUE; | ||
373 | |||
374 | if (my_range->alert_on == INSIDE) { | ||
375 | false = TRUE; | ||
376 | true = FALSE; | ||
377 | } | ||
378 | |||
379 | if (my_range->end_infinity == FALSE && my_range->start_infinity == FALSE) { | ||
380 | if ((my_range->start <= value) && (value <= my_range->end)) { | ||
381 | return false; | ||
382 | } else { | ||
383 | return true; | ||
384 | } | ||
385 | } else if (my_range->start_infinity == FALSE && my_range->end_infinity == TRUE) { | ||
386 | if (my_range->start <= value) { | ||
387 | return false; | ||
388 | } else { | ||
389 | return true; | ||
390 | } | ||
391 | } else if (my_range->start_infinity == TRUE && my_range->end_infinity == FALSE) { | ||
392 | if (value <= my_range->end) { | ||
393 | return false; | ||
394 | } else { | ||
395 | return true; | ||
396 | } | ||
397 | } else { | ||
398 | return false; | ||
399 | } | ||
400 | } | ||
401 | |||
402 | /* Returns status */ | ||
403 | int | ||
404 | get_status(double value, thresholds *my_thresholds) | ||
405 | { | ||
406 | if (my_thresholds->critical != NULL) { | ||
407 | if (check_range(value, my_thresholds->critical) == TRUE) { | ||
408 | return STATE_CRITICAL; | ||
409 | } | ||
410 | } | ||
411 | if (my_thresholds->warning != NULL) { | ||
412 | if (check_range(value, my_thresholds->warning) == TRUE) { | ||
413 | return STATE_WARNING; | ||
414 | } | ||
415 | } | ||
416 | return STATE_OK; | ||
417 | } | ||
418 | |||
419 | #ifdef NEED_GETTIMEOFDAY | 260 | #ifdef NEED_GETTIMEOFDAY |
420 | int | 261 | int |
421 | gettimeofday (struct timeval *tv, struct timezone *tz) | 262 | gettimeofday (struct timeval *tv, struct timezone *tz) |
@@ -727,33 +568,3 @@ char *fperfdata (const char *label, | |||
727 | 568 | ||
728 | return data; | 569 | return data; |
729 | } | 570 | } |
730 | |||
731 | char *np_escaped_string (const char *string) { | ||
732 | char *data; | ||
733 | int i, j=0; | ||
734 | data = strdup(string); | ||
735 | for (i=0; data[i]; i++) { | ||
736 | if (data[i] == '\\') { | ||
737 | switch(data[++i]) { | ||
738 | case 'n': | ||
739 | data[j++] = '\n'; | ||
740 | break; | ||
741 | case 'r': | ||
742 | data[j++] = '\r'; | ||
743 | break; | ||
744 | case 't': | ||
745 | data[j++] = '\t'; | ||
746 | break; | ||
747 | case '\\': | ||
748 | data[j++] = '\\'; | ||
749 | break; | ||
750 | default: | ||
751 | data[j++] = data[i]; | ||
752 | } | ||
753 | } else { | ||
754 | data[j++] = data[i]; | ||
755 | } | ||
756 | } | ||
757 | data[j] = '\0'; | ||
758 | return data; | ||
759 | } | ||
diff --git a/plugins/utils.h b/plugins/utils.h index 4bbe33d..1f53aad 100644 --- a/plugins/utils.h +++ b/plugins/utils.h | |||
@@ -20,7 +20,6 @@ suite of plugins. */ | |||
20 | void support (void); | 20 | void support (void); |
21 | char *clean_revstring (const char *); | 21 | char *clean_revstring (const char *); |
22 | void print_revision (const char *, const char *); | 22 | void print_revision (const char *, const char *); |
23 | void die (int, const char *, ...) __attribute__((noreturn,format(printf, 2, 3))); | ||
24 | 23 | ||
25 | /* Handle timeouts */ | 24 | /* Handle timeouts */ |
26 | 25 | ||
@@ -58,28 +57,6 @@ struct timeval { | |||
58 | }; | 57 | }; |
59 | #endif | 58 | #endif |
60 | 59 | ||
61 | #define OUTSIDE 0 | ||
62 | #define INSIDE 1 | ||
63 | |||
64 | typedef struct range_struct { | ||
65 | double start; | ||
66 | int start_infinity; /* FALSE (default) or TRUE */ | ||
67 | double end; | ||
68 | int end_infinity; | ||
69 | int alert_on; /* OUTSIDE (default) or INSIDE */ | ||
70 | } range; | ||
71 | |||
72 | typedef struct thresholds_struct { | ||
73 | range *warning; | ||
74 | range *critical; | ||
75 | } thresholds; | ||
76 | |||
77 | range *parse_range_string (char *); | ||
78 | int _set_thresholds(thresholds **, char *, char *); | ||
79 | void set_thresholds(thresholds **, char *, char *); | ||
80 | int check_range(double, range *); | ||
81 | int get_status(double, thresholds *); | ||
82 | |||
83 | #ifndef HAVE_GETTIMEOFDAY | 60 | #ifndef HAVE_GETTIMEOFDAY |
84 | int gettimeofday(struct timeval *, struct timezone *); | 61 | int gettimeofday(struct timeval *, struct timezone *); |
85 | #endif | 62 | #endif |
@@ -132,8 +109,6 @@ char *fperfdata (const char *, | |||
132 | int, | 109 | int, |
133 | double); | 110 | double); |
134 | 111 | ||
135 | char *np_escaped_string (const char *); | ||
136 | |||
137 | /* The idea here is that, although not every plugin will use all of these, | 112 | /* The idea here is that, although not every plugin will use all of these, |
138 | most will or should. Therefore, for consistency, these very common | 113 | most will or should. Therefore, for consistency, these very common |
139 | options should have only these meanings throughout the overall suite */ | 114 | options should have only these meanings throughout the overall suite */ |
diff --git a/plugins/utils_disk.c b/plugins/utils_disk.c deleted file mode 100644 index 31284d5..0000000 --- a/plugins/utils_disk.c +++ /dev/null | |||
@@ -1,141 +0,0 @@ | |||
1 | /**************************************************************************** | ||
2 | * Utils for check_disk | ||
3 | * | ||
4 | * License: GPL | ||
5 | * Copyright (c) 1999-2006 nagios-plugins team | ||
6 | * | ||
7 | * Last Modified: $Date$ | ||
8 | * | ||
9 | * Description: | ||
10 | * | ||
11 | * This file contains utilities for check_disk. These are tested by libtap | ||
12 | * | ||
13 | * License Information: | ||
14 | * | ||
15 | * This program is free software; you can redistribute it and/or modify | ||
16 | * it under the terms of the GNU General Public License as published by | ||
17 | * the Free Software Foundation; either version 2 of the License, or | ||
18 | * (at your option) any later version. | ||
19 | * | ||
20 | * This program is distributed in the hope that it will be useful, | ||
21 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
22 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
23 | * GNU General Public License for more details. | ||
24 | * | ||
25 | * You should have received a copy of the GNU General Public License | ||
26 | * along with this program; if not, write to the Free Software | ||
27 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
28 | * | ||
29 | * $Id$ | ||
30 | * | ||
31 | *****************************************************************************/ | ||
32 | |||
33 | #include "common.h" | ||
34 | #include "utils_disk.h" | ||
35 | |||
36 | void | ||
37 | np_add_name (struct name_list **list, const char *name) | ||
38 | { | ||
39 | struct name_list *new_entry; | ||
40 | new_entry = (struct name_list *) malloc (sizeof *new_entry); | ||
41 | new_entry->name = (char *) name; | ||
42 | new_entry->next = *list; | ||
43 | *list = new_entry; | ||
44 | } | ||
45 | |||
46 | /* Initialises a new parameter at the end of list */ | ||
47 | struct parameter_list * | ||
48 | np_add_parameter(struct parameter_list **list, const char *name) | ||
49 | { | ||
50 | struct parameter_list *current = *list; | ||
51 | struct parameter_list *new_path; | ||
52 | new_path = (struct parameter_list *) malloc (sizeof *new_path); | ||
53 | new_path->name = (char *) name; | ||
54 | new_path->found = 0; | ||
55 | new_path->found_len = 0; | ||
56 | new_path->w_df = 0; | ||
57 | new_path->c_df = 0; | ||
58 | new_path->w_dfp = -1.0; | ||
59 | new_path->c_dfp = -1.0; | ||
60 | new_path->w_idfp = -1.0; | ||
61 | new_path->c_idfp = -1.0; | ||
62 | new_path->best_match = NULL; | ||
63 | |||
64 | if (current == NULL) { | ||
65 | *list = new_path; | ||
66 | } else { | ||
67 | while (current->name_next) { | ||
68 | current = current->name_next; | ||
69 | } | ||
70 | current->name_next = new_path; | ||
71 | } | ||
72 | return new_path; | ||
73 | } | ||
74 | |||
75 | void | ||
76 | np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, int exact) | ||
77 | { | ||
78 | struct parameter_list *d; | ||
79 | for (d = desired; d; d= d->name_next) { | ||
80 | struct mount_entry *me; | ||
81 | size_t name_len = strlen(d->name); | ||
82 | size_t best_match_len = 0; | ||
83 | struct mount_entry *best_match = NULL; | ||
84 | |||
85 | for (me = mount_list; me; me = me->me_next) { | ||
86 | size_t len = strlen (me->me_mountdir); | ||
87 | if ((exact == FALSE && (best_match_len <= len && len <= name_len && | ||
88 | (len == 1 || strncmp (me->me_mountdir, d->name, len) == 0))) | ||
89 | || (exact == TRUE && strcmp(me->me_mountdir, d->name)==0)) | ||
90 | { | ||
91 | best_match = me; | ||
92 | best_match_len = len; | ||
93 | } else { | ||
94 | len = strlen (me->me_devname); | ||
95 | if ((exact == FALSE && (best_match_len <= len && len <= name_len && | ||
96 | (len == 1 || strncmp (me->me_devname, d->name, len) == 0))) | ||
97 | || (exact == TRUE && strcmp(me->me_devname, d->name)==0)) | ||
98 | { | ||
99 | best_match = me; | ||
100 | best_match_len = len; | ||
101 | } | ||
102 | } | ||
103 | } | ||
104 | if (best_match) { | ||
105 | d->best_match = best_match; | ||
106 | d->found = TRUE; | ||
107 | } else { | ||
108 | d->best_match = NULL; /* Not sure why this is needed as it should be null on initialisation */ | ||
109 | } | ||
110 | } | ||
111 | } | ||
112 | |||
113 | /* Returns TRUE if name is in list */ | ||
114 | int | ||
115 | np_find_name (struct name_list *list, const char *name) | ||
116 | { | ||
117 | const struct name_list *n; | ||
118 | |||
119 | if (list == NULL || name == NULL) { | ||
120 | return FALSE; | ||
121 | } | ||
122 | for (n = list; n; n = n->next) { | ||
123 | if (!strcmp(name, n->name)) { | ||
124 | return TRUE; | ||
125 | } | ||
126 | } | ||
127 | return FALSE; | ||
128 | } | ||
129 | |||
130 | int | ||
131 | np_seen_name(struct name_list *list, const char *name) | ||
132 | { | ||
133 | const struct name_list *s; | ||
134 | for (s = list; s; s=s->next) { | ||
135 | if (!strcmp(s->name, name)) { | ||
136 | return TRUE; | ||
137 | } | ||
138 | } | ||
139 | return FALSE; | ||
140 | } | ||
141 | |||
diff --git a/plugins/utils_disk.h b/plugins/utils_disk.h deleted file mode 100644 index 676ca09..0000000 --- a/plugins/utils_disk.h +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
1 | /* Header file for utils_disk */ | ||
2 | |||
3 | #include "mountlist.h" | ||
4 | |||
5 | struct name_list | ||
6 | { | ||
7 | char *name; | ||
8 | struct name_list *next; | ||
9 | }; | ||
10 | |||
11 | struct parameter_list | ||
12 | { | ||
13 | char *name; | ||
14 | int found; | ||
15 | int found_len; | ||
16 | uintmax_t w_df; | ||
17 | uintmax_t c_df; | ||
18 | double w_dfp; | ||
19 | double c_dfp; | ||
20 | double w_idfp; | ||
21 | double c_idfp; | ||
22 | struct mount_entry *best_match; | ||
23 | struct parameter_list *name_next; | ||
24 | }; | ||
25 | |||
26 | void np_add_name (struct name_list **list, const char *name); | ||
27 | int np_find_name (struct name_list *list, const char *name); | ||
28 | int np_seen_name (struct name_list *list, const char *name); | ||
29 | struct parameter_list *np_add_parameter(struct parameter_list **list, const char *name); | ||
30 | int search_parameter_list (struct parameter_list *list, const char *name); | ||