diff options
| author | Ton Voon <tonvoon@users.sourceforge.net> | 2006-07-13 12:50:23 +0000 |
|---|---|---|
| committer | Ton Voon <tonvoon@users.sourceforge.net> | 2006-07-13 12:50:23 +0000 |
| commit | 548083b2ea865474915fc8a9ddd361e997585a02 (patch) | |
| tree | f3766c1f5d8f8ea1b2b721a5792e4fb4daf1cf68 | |
| parent | 6b9cc76d0a27631fbab19a31ab8bd46e143b7580 (diff) | |
| download | monitoring-plugins-548083b2ea865474915fc8a9ddd361e997585a02.tar.gz | |
Move new util_* functions to lib/
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1451 f882894a-f735-0410-b71e-b25c423dba1c
| -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 28367a94..a45758ab 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 54d5700b..32ab396b 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 9a8991e1..0f40bf1f 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 6dc692f5..6dc692f5 100644 --- a/plugins/tests/.cvsignore +++ b/lib/tests/.cvsignore | |||
diff --git a/plugins/tests/Makefile.am b/lib/tests/Makefile.am index 741499d5..63dee76e 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 66935e4d..66935e4d 100644 --- a/plugins/tests/README +++ b/lib/tests/README | |||
diff --git a/plugins/tests/test_disk.c b/lib/tests/test_disk.c index 8940236b..8940236b 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 d32567a9..d32567a9 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 67c304a3..aedc2a58 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 152eb718..152eb718 100755 --- a/plugins/tests/test_utils.t +++ b/lib/tests/test_utils.t | |||
diff --git a/plugins/Makefile.am b/plugins/Makefile.am index 28793cdc..9dd71845 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 14234483..6beaf861 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 081741ab..6563e103 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 a47572d9..8c7e4ef0 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 404ca79f..e1293666 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 cb013412..2b3accea 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 4bbe33d0..1f53aadb 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 31284d5d..00000000 --- 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 676ca09a..00000000 --- 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); | ||
