summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 6b9cc76)
raw | patch | inline | side by side (parent: 6b9cc76)
author | Ton Voon <tonvoon@users.sourceforge.net> | |
Thu, 13 Jul 2006 12:50:23 +0000 (12:50 +0000) | ||
committer | Ton Voon <tonvoon@users.sourceforge.net> | |
Thu, 13 Jul 2006 12:50:23 +0000 (12:50 +0000) |
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1451 f882894a-f735-0410-b71e-b25c423dba1c
26 files changed:
diff --git a/Makefile.am b/Makefile.am
index 28367a94aa712c867a8a61f3a5d3c03005656948..a45758ab3c6103a24849769da848601159379c79 100644 (file)
--- a/Makefile.am
+++ b/Makefile.am
cd plugins-root && $(MAKE) $@
test:
+ cd lib && $(MAKE) test
cd plugins; $(MAKE) test
cd plugins-scripts; $(MAKE) test
diff --git a/configure.in b/configure.in
index 54d5700b6515ba94d04283dbb48d924682d8a63a..32ab396ba98681918680fc3ff1db544691b5ebe7 100644 (file)
--- a/configure.in
+++ b/configure.in
lib/Makefile
m4/Makefile
plugins/Makefile
- plugins/tests/Makefile
+ lib/tests/Makefile
plugins-root/Makefile
plugins-scripts/Makefile
plugins-scripts/subst
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 9a8991e149d31ad3ab90529565db98ae06f80091..0f40bf1fb351b13f35ce6b796ea3e8711dfdbe5d 100644 (file)
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
## Process this file with automake to produce Makefile.in
+SUBDIRS = tests
+
noinst_LIBRARIES = libcoreutils.a libnagiosplug.a
# Will auto pick up fsusage.c mountlist.c
libcoreutils_a_LIBADD = $(LIBOBJS)
libcoreutils_a_DEPENDENCIES = $(libcoreutils_a_LIBADD)
-libnagiosplug_a_SOURCES = snprintf.c
+libnagiosplug_a_SOURCES = snprintf.c utils_base.c utils_disk.c
-INCLUDES = -I$(srcdir) -I$(top_srcdir)/intl
+INCLUDES = -I$(srcdir) -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
print_coreutil_files:
@echo $(libcoreutils_a_SOURCES) $(other_coreutils_files) $(EXTRA_DIST)
+test:
+ cd tests && make test
+
# Below are from coreutil's lib/Makefile.am
BUILT_SOURCES = $(STDBOOL_H)
EXTRA_DIST += stdbool_.h
diff --git a/lib/tests/.cvsignore b/lib/tests/.cvsignore
--- /dev/null
+++ b/lib/tests/.cvsignore
@@ -0,0 +1,5 @@
+Makefile
+Makefile.in
+test_utils
+test_disk
+.deps
diff --git a/lib/tests/Makefile.am b/lib/tests/Makefile.am
--- /dev/null
+++ b/lib/tests/Makefile.am
@@ -0,0 +1,28 @@
+
+noinst_PROGRAMS = @EXTRA_TEST@
+
+# These two lines support "make check", but we use "make test"
+TESTS = @EXTRA_TEST@
+check_PROGRAMS = @EXTRA_TEST@
+
+INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/intl -I$(top_srcdir)/plugins
+
+EXTRA_PROGRAMS = test_utils test_disk
+
+EXTRA_DIST = test_utils.t test_disk.t
+
+LIBS = @LIBINTL@
+
+test_utils_SOURCES = test_utils.c
+test_utils_CFLAGS = -g -I..
+test_utils_LDFLAGS = -L/usr/local/lib -ltap
+test_utils_LDADD = ../utils_base.o
+
+test_disk_SOURCES = test_disk.c
+test_disk_CFLAGS = -g -I..
+test_disk_LDFLAGS = -L/usr/local/lib -ltap
+test_disk_LDADD = ../utils_disk.o
+
+test: ${noinst_PROGRAMS}
+ perl -MTest::Harness -e '$$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS)
+
diff --git a/lib/tests/README b/lib/tests/README
--- /dev/null
+++ b/lib/tests/README
@@ -0,0 +1,5 @@
+The tests in here use the libtap library functions
+(http://jc.ngo.org.uk/trac-bin/trac.cgi/wiki/LibTap), so are
+more for unit testing the utils.c library functions.
+
+However, it probably should be merged into the plugins/t subdirectory.
diff --git a/lib/tests/test_disk.c b/lib/tests/test_disk.c
--- /dev/null
+++ b/lib/tests/test_disk.c
@@ -0,0 +1,124 @@
+/******************************************************************************
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ $Id$
+
+******************************************************************************/
+
+#include "common.h"
+#include "utils_disk.h"
+#include "tap.h"
+
+int
+main (int argc, char **argv)
+{
+ struct name_list *exclude_filesystem=NULL;
+ struct name_list *exclude_fstype=NULL;
+ struct name_list *dummy_mountlist = NULL;
+ struct name_list *temp_name;
+ struct parameter_list *paths = NULL;
+ struct parameter_list *p;
+
+ struct mount_entry *dummy_mount_list;
+ struct mount_entry *me;
+ struct mount_entry **mtail = &dummy_mount_list;
+
+ plan_tests(17);
+
+ ok( np_find_name(exclude_filesystem, "/var/log") == FALSE, "/var/log not in list");
+ np_add_name(&exclude_filesystem, "/var/log");
+ ok( np_find_name(exclude_filesystem, "/var/log") == TRUE, "is in list now");
+ ok( np_find_name(exclude_filesystem, "/home") == FALSE, "/home not in list");
+ np_add_name(&exclude_filesystem, "/home");
+ ok( np_find_name(exclude_filesystem, "/home") == TRUE, "is in list now");
+ ok( np_find_name(exclude_filesystem, "/var/log") == TRUE, "/var/log still in list");
+
+ ok( np_find_name(exclude_fstype, "iso9660") == FALSE, "iso9660 not in list");
+ np_add_name(&exclude_fstype, "iso9660");
+ ok( np_find_name(exclude_fstype, "iso9660") == TRUE, "is in list now");
+
+ ok( np_find_name(exclude_filesystem, "iso9660") == FALSE, "Make sure no clashing in variables");
+
+ /*
+ for (temp_name = exclude_filesystem; temp_name; temp_name = temp_name->next) {
+ printf("Name: %s\n", temp_name->name);
+ }
+ */
+
+ me = (struct mount_entry *) malloc(sizeof *me);
+ me->me_devname = strdup("/dev/c0t0d0s0");
+ me->me_mountdir = strdup("/");
+ *mtail = me;
+ mtail = &me->me_next;
+
+ me = (struct mount_entry *) malloc(sizeof *me);
+ me->me_devname = strdup("/dev/c1t0d1s0");
+ me->me_mountdir = strdup("/var");
+ *mtail = me;
+ mtail = &me->me_next;
+
+ me = (struct mount_entry *) malloc(sizeof *me);
+ me->me_devname = strdup("/dev/c2t0d0s0");
+ me->me_mountdir = strdup("/home");
+ *mtail = me;
+ mtail = &me->me_next;
+
+
+ np_add_parameter(&paths, "/home/groups");
+ np_add_parameter(&paths, "/var");
+ np_add_parameter(&paths, "/tmp");
+ np_add_parameter(&paths, "/home/tonvoon");
+ np_add_parameter(&paths, "/dev/c2t0d0s0");
+
+ np_set_best_match(paths, dummy_mount_list, FALSE);
+ for (p = paths; p; p = p->name_next) {
+ struct mount_entry *temp_me;
+ temp_me = p->best_match;
+ if (! strcmp(p->name, "/home/groups")) {
+ ok( temp_me && !strcmp(temp_me->me_mountdir, "/home"), "/home/groups got right best match: /home");
+ } else if (! strcmp(p->name, "/var")) {
+ ok( temp_me && !strcmp(temp_me->me_mountdir, "/var"), "/var got right best match: /var");
+ } else if (! strcmp(p->name, "/tmp")) {
+ ok( temp_me && !strcmp(temp_me->me_mountdir, "/"), "/tmp got right best match: /");
+ } else if (! strcmp(p->name, "/home/tonvoon")) {
+ ok( temp_me && !strcmp(temp_me->me_mountdir, "/home"), "/home/tonvoon got right best match: /home");
+ } else if (! strcmp(p->name, "/dev/c2t0d0s0")) {
+ ok( temp_me && !strcmp(temp_me->me_devname, "/dev/c2t0d0s0"), "/dev/c2t0d0s0 got right best match: /dev/c2t0d0s0");
+ }
+ }
+
+ paths = NULL; /* Bad boy - should free, but this is a test suite */
+ np_add_parameter(&paths, "/home/groups");
+ np_add_parameter(&paths, "/var");
+ np_add_parameter(&paths, "/tmp");
+ np_add_parameter(&paths, "/home/tonvoon");
+
+ np_set_best_match(paths, dummy_mount_list, TRUE);
+ for (p = paths; p; p = p->name_next) {
+ if (! strcmp(p->name, "/home/groups")) {
+ ok( p->found == 0, "/home/groups correctly not found");
+ } else if (! strcmp(p->name, "/var")) {
+ ok( p->found == 1, "/var found");
+ } else if (! strcmp(p->name, "/tmp")) {
+ ok( p->found == 0, "/tmp correctly not found");
+ } else if (! strcmp(p->name, "/home/tonvoon")) {
+ ok( p->found == 0, "/home/tonvoon not found");
+ }
+ }
+
+ return exit_status();
+}
+
diff --git a/lib/tests/test_disk.t b/lib/tests/test_disk.t
--- /dev/null
+++ b/lib/tests/test_disk.t
@@ -0,0 +1,6 @@
+#!/usr/bin/perl
+use Test::More;
+if (! -e "./test_disk") {
+ plan skip_all => "./test_disk not compiled - please install tap library to test";
+}
+exec "./test_disk";
diff --git a/lib/tests/test_utils.c b/lib/tests/test_utils.c
--- /dev/null
+++ b/lib/tests/test_utils.c
@@ -0,0 +1,169 @@
+/******************************************************************************
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ $Id$
+
+******************************************************************************/
+
+#include "common.h"
+#include "utils_base.h"
+
+#include "tap.h"
+
+int
+main (int argc, char **argv)
+{
+ range *range;
+ double temp;
+ thresholds *thresholds = NULL;
+ int rc;
+
+ plan_tests(74);
+
+ range = parse_range_string("6");
+ ok( range != NULL, "'6' is valid range");
+ ok( range->start == 0, "Start correct");
+ ok( range->start_infinity == FALSE, "Not using negative infinity");
+ ok( range->end == 6, "End correct");
+ ok( range->end_infinity == FALSE, "Not using infinity");
+ free(range);
+
+ range = parse_range_string("-7:23");
+ ok( range != NULL, "'-7:23' is valid range");
+ ok( range->start == -7, "Start correct");
+ ok( range->start_infinity == FALSE, "Not using negative infinity");
+ ok( range->end == 23, "End correct");
+ ok( range->end_infinity == FALSE, "Not using infinity");
+ free(range);
+
+ range = parse_range_string(":5.75");
+ ok( range != NULL, "':5.75' is valid range");
+ ok( range->start == 0, "Start correct");
+ ok( range->start_infinity == FALSE, "Not using negative infinity");
+ ok( range->end == 5.75, "End correct");
+ ok( range->end_infinity == FALSE, "Not using infinity");
+ free(range);
+
+ range = parse_range_string("~:-95.99");
+ ok( range != NULL, "~:-95.99' is valid range");
+ ok( range->start_infinity == TRUE, "Using negative infinity");
+ ok( range->end == -95.99, "End correct (with rounding errors)");
+ ok( range->end_infinity == FALSE, "Not using infinity");
+ free(range);
+
+ range = parse_range_string("12345678901234567890:");
+ temp = atof("12345678901234567890"); /* Can't just use this because number too large */
+ ok( range != NULL, "'12345678901234567890:' is valid range");
+ ok( range->start == temp, "Start correct");
+ ok( range->start_infinity == FALSE, "Not using negative infinity");
+ ok( range->end_infinity == TRUE, "Using infinity");
+ /* Cannot do a "-1" on temp, as it appears to be same value */
+ ok( check_range(temp/1.1, range) == TRUE, "12345678901234567890/1.1 - alert");
+ ok( check_range(temp, range) == FALSE, "12345678901234567890 - no alert");
+ ok( check_range(temp*2, range) == FALSE, "12345678901234567890*2 - no alert");
+ free(range);
+
+ range = parse_range_string("~:0");
+ ok( range != NULL, "'~:0' is valid range");
+ ok( range->start_infinity == TRUE, "Using negative infinity");
+ ok( range->end == 0, "End correct");
+ ok( range->end_infinity == FALSE, "Not using infinity");
+ ok( range->alert_on == OUTSIDE, "Will alert on outside of this range");
+ ok( check_range(0.5, range) == TRUE, "0.5 - alert");
+ ok( check_range(-10, range) == FALSE, "-10 - no alert");
+ ok( check_range(0, range) == FALSE, "0 - no alert");
+ free(range);
+
+ range = parse_range_string("@0:657.8210567");
+ ok( range != 0, "@0:657.8210567' is a valid range");
+ ok( range->start == 0, "Start correct");
+ ok( range->start_infinity == FALSE, "Not using negative infinity");
+ ok( range->end == 657.8210567, "End correct");
+ ok( range->end_infinity == FALSE, "Not using infinity");
+ ok( range->alert_on == INSIDE, "Will alert on inside of this range" );
+ ok( check_range(32.88, range) == TRUE, "32.88 - alert");
+ ok( check_range(-2, range) == FALSE, "-2 - no alert");
+ ok( check_range(657.8210567, range) == TRUE, "657.8210567 - alert");
+ ok( check_range(0, range) == TRUE, "0 - alert");
+ free(range);
+
+ range = parse_range_string("1:1");
+ ok( range != NULL, "'1:1' is a valid range");
+ ok( range->start == 1, "Start correct");
+ ok( range->start_infinity == FALSE, "Not using negative infinity");
+ ok( range->end == 1, "End correct");
+ ok( range->end_infinity == FALSE, "Not using infinity");
+ ok( check_range(0.5, range) == TRUE, "0.5 - alert");
+ ok( check_range(1, range) == FALSE, "1 - no alert");
+ ok( check_range(5.2, range) == TRUE, "5.2 - alert");
+ free(range);
+
+ range = parse_range_string("2:1");
+ ok( range == NULL, "'2:1' rejected");
+
+ rc = _set_thresholds(&thresholds, NULL, "80");
+ ok( rc == 0, "Thresholds (NULL, '80') set");
+ ok( thresholds->warning == NULL, "Warning not set");
+ ok( thresholds->critical->end == 80, "Critical set correctly");
+
+ rc = _set_thresholds(&thresholds, "5:33", NULL);
+ ok( rc == 0, "Thresholds ('5:33', NULL) set");
+ ok( thresholds->warning->start == 5, "Warning start set");
+ ok( thresholds->warning->end == 33, "Warning end set");
+ ok( thresholds->critical == NULL, "Critical not set");
+
+ rc = _set_thresholds(&thresholds, "30", "60");
+ ok( rc == 0, "Thresholds ('30', '60') set");
+ ok( thresholds->warning->end == 30, "Warning set correctly");
+ ok( thresholds->critical->end == 60, "Critical set correctly");
+ ok( get_status(15.3, thresholds) == STATE_OK, "15.3 - ok");
+ ok( get_status(30.0001, thresholds) == STATE_WARNING, "30.0001 - warning");
+ ok( get_status(69, thresholds) == STATE_CRITICAL, "69 - critical");
+
+ char *test;
+ test = np_escaped_string("bob\\n");
+ ok( strcmp(test, "bob\n") == 0, "bob\\n ok");
+ free(test);
+
+ test = np_escaped_string("rhuba\\rb");
+ ok( strcmp(test, "rhuba\rb") == 0, "rhuba\\rb okay");
+ free(test);
+
+ test = np_escaped_string("ba\\nge\\r");
+ ok( strcmp(test, "ba\nge\r") == 0, "ba\\nge\\r okay");
+ free(test);
+
+ test = np_escaped_string("\\rabbi\\t");
+ ok( strcmp(test, "\rabbi\t") == 0, "\\rabbi\\t okay");
+ free(test);
+
+ test = np_escaped_string("and\\\\or");
+ ok( strcmp(test, "and\\or") == 0, "and\\\\or okay");
+ free(test);
+
+ test = np_escaped_string("bo\\gus");
+ ok( strcmp(test, "bogus") == 0, "bo\\gus okay");
+ free(test);
+
+ test = np_escaped_string("everything");
+ ok( strcmp(test, "everything") == 0, "everything okay");
+ free(test);
+
+ test = basename("/here/is/a/path");
+ ok( strcmp(test, "path") == 0, "basename okay");
+
+ return exit_status();
+}
diff --git a/lib/tests/test_utils.t b/lib/tests/test_utils.t
--- /dev/null
+++ b/lib/tests/test_utils.t
@@ -0,0 +1,6 @@
+#!/usr/bin/perl
+use Test::More;
+if (! -e "./test_utils") {
+ plan skip_all => "./test_utils not compiled - please install tap library to test";
+}
+exec "./test_utils";
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index 28793cdc8dc09a24a72d30c15bd7ebd98cd83c40..9dd71845febe618c7cadcf46a521d93d15e1e7af 100644 (file)
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
## Process this file with automake to produce Makefile.in
-SUBDIRS = tests
-
VPATH = $(top_srcdir) $(top_srcdir)/lib $(top_srcdir)/plugins $(top_srcdir)/plugins/t
INCLUDES = -I.. -I$(top_srcdir)/lib -I$(top_srcdir)/intl @LDAPINCLUDE@ @PGINCLUDE@ @SSLINCLUDE@
TESTS = @PLUGIN_TEST@
test:
- cd tests && make test
perl -I $(top_builddir) -I $(top_srcdir) ../test.pl
AM_INSTALL_PROGRAM_FLAGS = @INSTALL_OPTS@
check_apt_LDADD = $(BASEOBJS) runcmd.o
check_dig_LDADD = $(NETLIBS) runcmd.o
-check_disk_LDADD = $(BASEOBJS) popen.o utils_disk.o
+check_disk_LDADD = $(BASEOBJS) popen.o
check_dns_LDADD = $(NETLIBS) runcmd.o
check_dummy_LDADD = $(BASEOBJS)
check_fping_LDADD = $(NETLIBS) popen.o
check_apt_DEPENDENCIES = check_apt.c $(BASEOBJS) runcmd.o $(DEPLIBS)
check_dig_DEPENDENCIES = check_dig.c $(NETOBJS) runcmd.o $(DEPLIBS)
-check_disk_DEPENDENCIES = check_disk.c $(BASEOBJS) popen.o utils_disk.o $(DEPLIBS)
+check_disk_DEPENDENCIES = check_disk.c $(BASEOBJS) popen.o $(DEPLIBS)
check_dns_DEPENDENCIES = check_dns.c $(NETOBJS) runcmd.o $(DEPLIBS)
check_dummy_DEPENDENCIES = check_dummy.c $(DEPLIBS)
check_fping_DEPENDENCIES = check_fping.c $(NETOBJS) popen.o $(DEPLIBS)
diff --git a/plugins/check_disk.c b/plugins/check_disk.c
index 142344835a01ff677474d541d3b9d4431c8b6ef9..6beaf8614033238507bbe3d1e322baab07659324 100644 (file)
--- a/plugins/check_disk.c
+++ b/plugins/check_disk.c
#include <assert.h>
#include "popen.h"
#include "utils.h"
+#include "utils_disk.h"
#include <stdarg.h>
#include "fsusage.h"
#include "mountlist.h"
# include <limits.h>
#endif
-#include "utils_disk.h"
/* If nonzero, show inode information. */
static int inode_format;
static struct name_list *dp_exclude_list;
-static struct parameter_list *path_select_list;
+static struct parameter_list *path_select_list = NULL;
/* Linked list of mounted filesystems. */
static struct mount_entry *mount_list;
{
int c;
struct parameter_list *se;
- struct parameter_list **pathtail = &path_select_list;
struct parameter_list *temp_list;
int result = OK;
struct stat *stat_buf;
+ char *warn_freespace = NULL;
+ char *crit_freespace = NULL;
+ char *warn_freespace_percent = NULL;
+ char *crit_freespace_percent = NULL;
+ char temp_string[MAX_INPUT_BUFFER];
unsigned long l;
+ double f;
int option = 0;
static struct option longopts[] = {
usage2 (_("Timeout interval must be a positive integer"), optarg);
}
case 'w': /* warning threshold */
+ /*
+ if (strstr(optarg, "%")) {
+ printf("Got percent with optarg=%s\n", optarg);
+ warn_freespace_percent = optarg;
+ } else {
+ warn_freespace = optarg;
+ }
+ break;
+ */
if (is_intnonneg (optarg)) {
w_df = atoi (optarg);
break;
show_local_fs = 1;
break;
case 'p': /* select path */
- se = (struct parameter_list *) malloc (sizeof (struct parameter_list));
- se->name = optarg;
- se->name_next = NULL;
+ se = np_add_parameter(&path_select_list, optarg);
se->w_df = w_df;
se->c_df = c_df;
se->w_dfp = w_dfp;
se->c_dfp = c_dfp;
se->w_idfp = w_idfp;
se->c_idfp = c_idfp;
- se->found = 0;
- se->found_len = 0;
- *pathtail = se;
- pathtail = &se->name_next;
break;
case 'x': /* exclude path or partition */
np_add_name(&dp_exclude_list, optarg);
c_dfp = (100.0 - atof (argv[c++]));
if (argc > c && path == NULL) {
- se = (struct parameter_list *) malloc (sizeof (struct parameter_list));
- se->name = strdup (argv[c++]);
- se->name_next = NULL;
+ se = np_add_parameter(&path_select_list, strdup(argv[c++]));
se->w_df = w_df;
se->c_df = c_df;
se->w_dfp = w_dfp;
se->c_dfp = c_dfp;
se->w_idfp = w_idfp;
se->c_idfp = c_idfp;
- se->found =0;
- se->found_len = 0;
- *pathtail = se;
}
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
int
-
check_disk (double usp, uintmax_t free_disk, double uisp)
{
int result = STATE_UNKNOWN;
diff --git a/plugins/check_dns.c b/plugins/check_dns.c
index 081741ab3d023211b1f6604b2ece54fdf8c9d293..6563e10372367e08e8cd3793d7253349000843af 100644 (file)
--- a/plugins/check_dns.c
+++ b/plugins/check_dns.c
#include "common.h"
#include "utils.h"
+#include "utils_base.h"
#include "netutils.h"
#include "runcmd.h"
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c
index a47572d93162902678f4fbde3a3bcefbcd5c760b..8c7e4ef044586bc2b1c918acf1e6a5e5c1d168ea 100644 (file)
--- a/plugins/check_mysql.c
+++ b/plugins/check_mysql.c
#include "common.h"
#include "utils.h"
+#include "utils_base.h"
#include "netutils.h"
#include <mysql.h>
index 404ca79fc875d06696c02c766d8c31f639b8b89f..e1293666fee310c3567c84aed86e859314f44ef7 100644 (file)
#include "common.h"
#include "utils.h"
+#include "utils_base.h"
#include "netutils.h"
#include <mysql.h>
diff --git a/plugins/tests/.cvsignore b/plugins/tests/.cvsignore
--- a/plugins/tests/.cvsignore
+++ /dev/null
@@ -1,5 +0,0 @@
-Makefile
-Makefile.in
-test_utils
-test_disk
-.deps
diff --git a/plugins/tests/Makefile.am b/plugins/tests/Makefile.am
+++ /dev/null
@@ -1,28 +0,0 @@
-
-noinst_PROGRAMS = @EXTRA_TEST@
-
-# These two lines support "make check", but we use "make test"
-TESTS = @EXTRA_TEST@
-check_PROGRAMS = @EXTRA_TEST@
-
-INCLUDES = -I$(top_srcdir)/lib -I$(top_srcdir)/intl
-
-EXTRA_PROGRAMS = test_utils test_disk
-
-EXTRA_DIST = test_utils.t test_disk.t
-
-LIBS = @LIBINTL@
-
-test_utils_SOURCES = test_utils.c
-test_utils_CFLAGS = -g -I..
-test_utils_LDFLAGS = -L/usr/local/lib -ltap
-test_utils_LDADD = ../utils.o
-
-test_disk_SOURCES = test_disk.c
-test_disk_CFLAGS = -g -I..
-test_disk_LDFLAGS = -L/usr/local/lib -ltap
-test_disk_LDADD = ../utils_disk.o
-
-test: ${noinst_PROGRAMS}
- perl -MTest::Harness -e '$$Test::Harness::switches=""; runtests(map {$$_ .= ".t"} @ARGV)' $(EXTRA_PROGRAMS)
-
diff --git a/plugins/tests/README b/plugins/tests/README
--- a/plugins/tests/README
+++ /dev/null
@@ -1,5 +0,0 @@
-The tests in here use the libtap library functions
-(http://jc.ngo.org.uk/trac-bin/trac.cgi/wiki/LibTap), so are
-more for unit testing the utils.c library functions.
-
-However, it probably should be merged into the plugins/t subdirectory.
diff --git a/plugins/tests/test_disk.c b/plugins/tests/test_disk.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/******************************************************************************
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id$
-
-******************************************************************************/
-
-#include "common.h"
-#include "utils_disk.h"
-#include "tap.h"
-
-int
-main (int argc, char **argv)
-{
- struct name_list *exclude_filesystem=NULL;
- struct name_list *exclude_fstype=NULL;
- struct name_list *dummy_mountlist = NULL;
- struct name_list *temp_name;
- struct parameter_list *paths = NULL;
- struct parameter_list *p;
-
- struct mount_entry *dummy_mount_list;
- struct mount_entry *me;
- struct mount_entry **mtail = &dummy_mount_list;
-
- plan_tests(17);
-
- ok( np_find_name(exclude_filesystem, "/var/log") == FALSE, "/var/log not in list");
- np_add_name(&exclude_filesystem, "/var/log");
- ok( np_find_name(exclude_filesystem, "/var/log") == TRUE, "is in list now");
- ok( np_find_name(exclude_filesystem, "/home") == FALSE, "/home not in list");
- np_add_name(&exclude_filesystem, "/home");
- ok( np_find_name(exclude_filesystem, "/home") == TRUE, "is in list now");
- ok( np_find_name(exclude_filesystem, "/var/log") == TRUE, "/var/log still in list");
-
- ok( np_find_name(exclude_fstype, "iso9660") == FALSE, "iso9660 not in list");
- np_add_name(&exclude_fstype, "iso9660");
- ok( np_find_name(exclude_fstype, "iso9660") == TRUE, "is in list now");
-
- ok( np_find_name(exclude_filesystem, "iso9660") == FALSE, "Make sure no clashing in variables");
-
- /*
- for (temp_name = exclude_filesystem; temp_name; temp_name = temp_name->next) {
- printf("Name: %s\n", temp_name->name);
- }
- */
-
- me = (struct mount_entry *) malloc(sizeof *me);
- me->me_devname = strdup("/dev/c0t0d0s0");
- me->me_mountdir = strdup("/");
- *mtail = me;
- mtail = &me->me_next;
-
- me = (struct mount_entry *) malloc(sizeof *me);
- me->me_devname = strdup("/dev/c1t0d1s0");
- me->me_mountdir = strdup("/var");
- *mtail = me;
- mtail = &me->me_next;
-
- me = (struct mount_entry *) malloc(sizeof *me);
- me->me_devname = strdup("/dev/c2t0d0s0");
- me->me_mountdir = strdup("/home");
- *mtail = me;
- mtail = &me->me_next;
-
-
- np_add_parameter(&paths, "/home/groups");
- np_add_parameter(&paths, "/var");
- np_add_parameter(&paths, "/tmp");
- np_add_parameter(&paths, "/home/tonvoon");
- np_add_parameter(&paths, "/dev/c2t0d0s0");
-
- np_set_best_match(paths, dummy_mount_list, FALSE);
- for (p = paths; p; p = p->name_next) {
- struct mount_entry *temp_me;
- temp_me = p->best_match;
- if (! strcmp(p->name, "/home/groups")) {
- ok( temp_me && !strcmp(temp_me->me_mountdir, "/home"), "/home/groups got right best match: /home");
- } else if (! strcmp(p->name, "/var")) {
- ok( temp_me && !strcmp(temp_me->me_mountdir, "/var"), "/var got right best match: /var");
- } else if (! strcmp(p->name, "/tmp")) {
- ok( temp_me && !strcmp(temp_me->me_mountdir, "/"), "/tmp got right best match: /");
- } else if (! strcmp(p->name, "/home/tonvoon")) {
- ok( temp_me && !strcmp(temp_me->me_mountdir, "/home"), "/home/tonvoon got right best match: /home");
- } else if (! strcmp(p->name, "/dev/c2t0d0s0")) {
- ok( temp_me && !strcmp(temp_me->me_devname, "/dev/c2t0d0s0"), "/dev/c2t0d0s0 got right best match: /dev/c2t0d0s0");
- }
- }
-
- paths = NULL; /* Bad boy - should free, but this is a test suite */
- np_add_parameter(&paths, "/home/groups");
- np_add_parameter(&paths, "/var");
- np_add_parameter(&paths, "/tmp");
- np_add_parameter(&paths, "/home/tonvoon");
-
- np_set_best_match(paths, dummy_mount_list, TRUE);
- for (p = paths; p; p = p->name_next) {
- if (! strcmp(p->name, "/home/groups")) {
- ok( p->found == 0, "/home/groups correctly not found");
- } else if (! strcmp(p->name, "/var")) {
- ok( p->found == 1, "/var found");
- } else if (! strcmp(p->name, "/tmp")) {
- ok( p->found == 0, "/tmp correctly not found");
- } else if (! strcmp(p->name, "/home/tonvoon")) {
- ok( p->found == 0, "/home/tonvoon not found");
- }
- }
-
- return exit_status();
-}
-
diff --git a/plugins/tests/test_disk.t b/plugins/tests/test_disk.t
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/perl
-use Test::More;
-if (! -e "./test_disk") {
- plan skip_all => "./test_disk not compiled - please install tap library to test";
-}
-exec "./test_disk";
diff --git a/plugins/tests/test_utils.c b/plugins/tests/test_utils.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/******************************************************************************
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
- $Id$
-
-******************************************************************************/
-
-const char *progname = "utils";
-
-#include "common.h"
-#include "utils.h"
-#include "popen.h"
-
-#include "tap.h"
-
-int
-main (int argc, char **argv)
-{
- range *range;
- double temp;
- thresholds *thresholds = NULL;
- int rc;
-
- plan_tests(74);
-
- range = parse_range_string("6");
- ok( range != NULL, "'6' is valid range");
- ok( range->start == 0, "Start correct");
- ok( range->start_infinity == FALSE, "Not using negative infinity");
- ok( range->end == 6, "End correct");
- ok( range->end_infinity == FALSE, "Not using infinity");
- free(range);
-
- range = parse_range_string("-7:23");
- ok( range != NULL, "'-7:23' is valid range");
- ok( range->start == -7, "Start correct");
- ok( range->start_infinity == FALSE, "Not using negative infinity");
- ok( range->end == 23, "End correct");
- ok( range->end_infinity == FALSE, "Not using infinity");
- free(range);
-
- range = parse_range_string(":5.75");
- ok( range != NULL, "':5.75' is valid range");
- ok( range->start == 0, "Start correct");
- ok( range->start_infinity == FALSE, "Not using negative infinity");
- ok( range->end == 5.75, "End correct");
- ok( range->end_infinity == FALSE, "Not using infinity");
- free(range);
-
- range = parse_range_string("~:-95.99");
- ok( range != NULL, "~:-95.99' is valid range");
- ok( range->start_infinity == TRUE, "Using negative infinity");
- ok( range->end == -95.99, "End correct (with rounding errors)");
- ok( range->end_infinity == FALSE, "Not using infinity");
- free(range);
-
- range = parse_range_string("12345678901234567890:");
- temp = atof("12345678901234567890"); /* Can't just use this because number too large */
- ok( range != NULL, "'12345678901234567890:' is valid range");
- ok( range->start == temp, "Start correct");
- ok( range->start_infinity == FALSE, "Not using negative infinity");
- ok( range->end_infinity == TRUE, "Using infinity");
- /* Cannot do a "-1" on temp, as it appears to be same value */
- ok( check_range(temp/1.1, range) == TRUE, "12345678901234567890/1.1 - alert");
- ok( check_range(temp, range) == FALSE, "12345678901234567890 - no alert");
- ok( check_range(temp*2, range) == FALSE, "12345678901234567890*2 - no alert");
- free(range);
-
- range = parse_range_string("~:0");
- ok( range != NULL, "'~:0' is valid range");
- ok( range->start_infinity == TRUE, "Using negative infinity");
- ok( range->end == 0, "End correct");
- ok( range->end_infinity == FALSE, "Not using infinity");
- ok( range->alert_on == OUTSIDE, "Will alert on outside of this range");
- ok( check_range(0.5, range) == TRUE, "0.5 - alert");
- ok( check_range(-10, range) == FALSE, "-10 - no alert");
- ok( check_range(0, range) == FALSE, "0 - no alert");
- free(range);
-
- range = parse_range_string("@0:657.8210567");
- ok( range != 0, "@0:657.8210567' is a valid range");
- ok( range->start == 0, "Start correct");
- ok( range->start_infinity == FALSE, "Not using negative infinity");
- ok( range->end == 657.8210567, "End correct");
- ok( range->end_infinity == FALSE, "Not using infinity");
- ok( range->alert_on == INSIDE, "Will alert on inside of this range" );
- ok( check_range(32.88, range) == TRUE, "32.88 - alert");
- ok( check_range(-2, range) == FALSE, "-2 - no alert");
- ok( check_range(657.8210567, range) == TRUE, "657.8210567 - alert");
- ok( check_range(0, range) == TRUE, "0 - alert");
- free(range);
-
- range = parse_range_string("1:1");
- ok( range != NULL, "'1:1' is a valid range");
- ok( range->start == 1, "Start correct");
- ok( range->start_infinity == FALSE, "Not using negative infinity");
- ok( range->end == 1, "End correct");
- ok( range->end_infinity == FALSE, "Not using infinity");
- ok( check_range(0.5, range) == TRUE, "0.5 - alert");
- ok( check_range(1, range) == FALSE, "1 - no alert");
- ok( check_range(5.2, range) == TRUE, "5.2 - alert");
- free(range);
-
- range = parse_range_string("2:1");
- ok( range == NULL, "'2:1' rejected");
-
- rc = _set_thresholds(&thresholds, NULL, "80");
- ok( rc == 0, "Thresholds (NULL, '80') set");
- ok( thresholds->warning == NULL, "Warning not set");
- ok( thresholds->critical->end == 80, "Critical set correctly");
-
- rc = _set_thresholds(&thresholds, "5:33", NULL);
- ok( rc == 0, "Thresholds ('5:33', NULL) set");
- ok( thresholds->warning->start == 5, "Warning start set");
- ok( thresholds->warning->end == 33, "Warning end set");
- ok( thresholds->critical == NULL, "Critical not set");
-
- rc = _set_thresholds(&thresholds, "30", "60");
- ok( rc == 0, "Thresholds ('30', '60') set");
- ok( thresholds->warning->end == 30, "Warning set correctly");
- ok( thresholds->critical->end == 60, "Critical set correctly");
- ok( get_status(15.3, thresholds) == STATE_OK, "15.3 - ok");
- ok( get_status(30.0001, thresholds) == STATE_WARNING, "30.0001 - warning");
- ok( get_status(69, thresholds) == STATE_CRITICAL, "69 - critical");
-
- char *test;
- test = np_escaped_string("bob\\n");
- ok( strcmp(test, "bob\n") == 0, "bob\\n ok");
- free(test);
-
- test = np_escaped_string("rhuba\\rb");
- ok( strcmp(test, "rhuba\rb") == 0, "rhuba\\rb okay");
- free(test);
-
- test = np_escaped_string("ba\\nge\\r");
- ok( strcmp(test, "ba\nge\r") == 0, "ba\\nge\\r okay");
- free(test);
-
- test = np_escaped_string("\\rabbi\\t");
- ok( strcmp(test, "\rabbi\t") == 0, "\\rabbi\\t okay");
- free(test);
-
- test = np_escaped_string("and\\\\or");
- ok( strcmp(test, "and\\or") == 0, "and\\\\or okay");
- free(test);
-
- test = np_escaped_string("bo\\gus");
- ok( strcmp(test, "bogus") == 0, "bo\\gus okay");
- free(test);
-
- test = np_escaped_string("everything");
- ok( strcmp(test, "everything") == 0, "everything okay");
- free(test);
-
- test = basename("/here/is/a/path");
- ok( strcmp(test, "path") == 0, "basename okay");
-
- return exit_status();
-}
-
-void print_usage() {
- printf("Dummy");
-}
diff --git a/plugins/tests/test_utils.t b/plugins/tests/test_utils.t
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/perl
-use Test::More;
-if (! -e "./test_utils") {
- plan skip_all => "./test_utils not compiled - please install tap library to test";
-}
-exec "./test_utils";
diff --git a/plugins/utils.c b/plugins/utils.c
index cb013412c851087b8165ca3861e5bcf10eceff92..2b3accea672e2050f2f82abbf1d7962d479c550d 100644 (file)
--- a/plugins/utils.c
+++ b/plugins/utils.c
#include "common.h"
#include "utils.h"
+#include "utils_base.h"
#include <stdarg.h>
#include <limits.h>
}
}
-void
-die (int result, const char *fmt, ...)
-{
- va_list ap;
- va_start (ap, fmt);
- vprintf (fmt, ap);
- va_end (ap);
- exit (result);
-}
-
void
timeout_alarm_handler (int signo)
{
return FALSE;
}
-void set_range_start (range *this, double value) {
- this->start = value;
- this->start_infinity = FALSE;
-}
-
-void set_range_end (range *this, double value) {
- this->end = value;
- this->end_infinity = FALSE;
-}
-
-range
-*parse_range_string (char *str) {
- range *temp_range;
- double start;
- double end;
- char *end_str;
-
- temp_range = (range *) malloc(sizeof(range));
-
- /* Set defaults */
- temp_range->start = 0;
- temp_range->start_infinity = FALSE;
- temp_range->end = 0;
- temp_range->end_infinity = TRUE;
- temp_range->alert_on = OUTSIDE;
-
- if (str[0] == '@') {
- temp_range->alert_on = INSIDE;
- str++;
- }
-
- end_str = index(str, ':');
- if (end_str != NULL) {
- if (str[0] == '~') {
- temp_range->start_infinity = TRUE;
- } else {
- start = strtod(str, NULL); /* Will stop at the ':' */
- set_range_start(temp_range, start);
- }
- end_str++; /* Move past the ':' */
- } else {
- end_str = str;
- }
- end = strtod(end_str, NULL);
- if (strcmp(end_str, "") != 0) {
- set_range_end(temp_range, end);
- }
-
- if (temp_range->start_infinity == TRUE ||
- temp_range->end_infinity == TRUE ||
- temp_range->start <= temp_range->end) {
- return temp_range;
- }
- free(temp_range);
- return NULL;
-}
-
-/* returns 0 if okay, otherwise 1 */
-int
-_set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_string)
-{
- thresholds *temp_thresholds = NULL;
-
- temp_thresholds = malloc(sizeof(temp_thresholds));
-
- temp_thresholds->warning = NULL;
- temp_thresholds->critical = NULL;
-
- if (warn_string != NULL) {
- if ((temp_thresholds->warning = parse_range_string(warn_string)) == NULL) {
- return 1;
- }
- }
- if (critical_string != NULL) {
- if ((temp_thresholds->critical = parse_range_string(critical_string)) == NULL) {
- return 1;
- }
- }
-
- if (*my_thresholds != 0) {
- /* printf("Freeing here: %d\n", *my_thresholds); */
- free(*my_thresholds);
- }
- *my_thresholds = temp_thresholds;
-
- return 0;
-}
-
-void
-set_thresholds(thresholds **my_thresholds, char *warn_string, char *critical_string)
-{
- if (_set_thresholds(my_thresholds, warn_string, critical_string) == 0) {
- return;
- } else {
- usage(_("Range format incorrect"));
- }
-}
-
-/* Returns TRUE if alert should be raised based on the range */
-int
-check_range(double value, range *my_range)
-{
- int false = FALSE;
- int true = TRUE;
-
- if (my_range->alert_on == INSIDE) {
- false = TRUE;
- true = FALSE;
- }
-
- if (my_range->end_infinity == FALSE && my_range->start_infinity == FALSE) {
- if ((my_range->start <= value) && (value <= my_range->end)) {
- return false;
- } else {
- return true;
- }
- } else if (my_range->start_infinity == FALSE && my_range->end_infinity == TRUE) {
- if (my_range->start <= value) {
- return false;
- } else {
- return true;
- }
- } else if (my_range->start_infinity == TRUE && my_range->end_infinity == FALSE) {
- if (value <= my_range->end) {
- return false;
- } else {
- return true;
- }
- } else {
- return false;
- }
-}
-
-/* Returns status */
-int
-get_status(double value, thresholds *my_thresholds)
-{
- if (my_thresholds->critical != NULL) {
- if (check_range(value, my_thresholds->critical) == TRUE) {
- return STATE_CRITICAL;
- }
- }
- if (my_thresholds->warning != NULL) {
- if (check_range(value, my_thresholds->warning) == TRUE) {
- return STATE_WARNING;
- }
- }
- return STATE_OK;
-}
-
#ifdef NEED_GETTIMEOFDAY
int
gettimeofday (struct timeval *tv, struct timezone *tz)
return data;
}
-
-char *np_escaped_string (const char *string) {
- char *data;
- int i, j=0;
- data = strdup(string);
- for (i=0; data[i]; i++) {
- if (data[i] == '\\') {
- switch(data[++i]) {
- case 'n':
- data[j++] = '\n';
- break;
- case 'r':
- data[j++] = '\r';
- break;
- case 't':
- data[j++] = '\t';
- break;
- case '\\':
- data[j++] = '\\';
- break;
- default:
- data[j++] = data[i];
- }
- } else {
- data[j++] = data[i];
- }
- }
- data[j] = '\0';
- return data;
-}
diff --git a/plugins/utils.h b/plugins/utils.h
index 4bbe33d0fa351a1b9fba23f41bd2ac42a3f3287a..1f53aadb2f97c685cc60b488eadc540b57e7504f 100644 (file)
--- a/plugins/utils.h
+++ b/plugins/utils.h
void support (void);
char *clean_revstring (const char *);
void print_revision (const char *, const char *);
-void die (int, const char *, ...) __attribute__((noreturn,format(printf, 2, 3)));
/* Handle timeouts */
};
#endif
-#define OUTSIDE 0
-#define INSIDE 1
-
-typedef struct range_struct {
- double start;
- int start_infinity; /* FALSE (default) or TRUE */
- double end;
- int end_infinity;
- int alert_on; /* OUTSIDE (default) or INSIDE */
- } range;
-
-typedef struct thresholds_struct {
- range *warning;
- range *critical;
- } thresholds;
-
-range *parse_range_string (char *);
-int _set_thresholds(thresholds **, char *, char *);
-void set_thresholds(thresholds **, char *, char *);
-int check_range(double, range *);
-int get_status(double, thresholds *);
-
#ifndef HAVE_GETTIMEOFDAY
int gettimeofday(struct timeval *, struct timezone *);
#endif
int,
double);
-char *np_escaped_string (const char *);
-
/* The idea here is that, although not every plugin will use all of these,
most will or should. Therefore, for consistency, these very common
options should have only these meanings throughout the overall suite */
diff --git a/plugins/utils_disk.c b/plugins/utils_disk.c
--- a/plugins/utils_disk.c
+++ /dev/null
@@ -1,141 +0,0 @@
-/****************************************************************************
-* Utils for check_disk
-*
-* License: GPL
-* Copyright (c) 1999-2006 nagios-plugins team
-*
-* Last Modified: $Date$
-*
-* Description:
-*
-* This file contains utilities for check_disk. These are tested by libtap
-*
-* License Information:
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program; if not, write to the Free Software
-* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-*
-* $Id$
-*
-*****************************************************************************/
-
-#include "common.h"
-#include "utils_disk.h"
-
-void
-np_add_name (struct name_list **list, const char *name)
-{
- struct name_list *new_entry;
- new_entry = (struct name_list *) malloc (sizeof *new_entry);
- new_entry->name = (char *) name;
- new_entry->next = *list;
- *list = new_entry;
-}
-
-/* Initialises a new parameter at the end of list */
-struct parameter_list *
-np_add_parameter(struct parameter_list **list, const char *name)
-{
- struct parameter_list *current = *list;
- struct parameter_list *new_path;
- new_path = (struct parameter_list *) malloc (sizeof *new_path);
- new_path->name = (char *) name;
- new_path->found = 0;
- new_path->found_len = 0;
- new_path->w_df = 0;
- new_path->c_df = 0;
- new_path->w_dfp = -1.0;
- new_path->c_dfp = -1.0;
- new_path->w_idfp = -1.0;
- new_path->c_idfp = -1.0;
- new_path->best_match = NULL;
-
- if (current == NULL) {
- *list = new_path;
- } else {
- while (current->name_next) {
- current = current->name_next;
- }
- current->name_next = new_path;
- }
- return new_path;
-}
-
-void
-np_set_best_match(struct parameter_list *desired, struct mount_entry *mount_list, int exact)
-{
- struct parameter_list *d;
- for (d = desired; d; d= d->name_next) {
- struct mount_entry *me;
- size_t name_len = strlen(d->name);
- size_t best_match_len = 0;
- struct mount_entry *best_match = NULL;
-
- for (me = mount_list; me; me = me->me_next) {
- size_t len = strlen (me->me_mountdir);
- if ((exact == FALSE && (best_match_len <= len && len <= name_len &&
- (len == 1 || strncmp (me->me_mountdir, d->name, len) == 0)))
- || (exact == TRUE && strcmp(me->me_mountdir, d->name)==0))
- {
- best_match = me;
- best_match_len = len;
- } else {
- len = strlen (me->me_devname);
- if ((exact == FALSE && (best_match_len <= len && len <= name_len &&
- (len == 1 || strncmp (me->me_devname, d->name, len) == 0)))
- || (exact == TRUE && strcmp(me->me_devname, d->name)==0))
- {
- best_match = me;
- best_match_len = len;
- }
- }
- }
- if (best_match) {
- d->best_match = best_match;
- d->found = TRUE;
- } else {
- d->best_match = NULL; /* Not sure why this is needed as it should be null on initialisation */
- }
- }
-}
-
-/* Returns TRUE if name is in list */
-int
-np_find_name (struct name_list *list, const char *name)
-{
- const struct name_list *n;
-
- if (list == NULL || name == NULL) {
- return FALSE;
- }
- for (n = list; n; n = n->next) {
- if (!strcmp(name, n->name)) {
- return TRUE;
- }
- }
- return FALSE;
-}
-
-int
-np_seen_name(struct name_list *list, const char *name)
-{
- const struct name_list *s;
- for (s = list; s; s=s->next) {
- if (!strcmp(s->name, name)) {
- return TRUE;
- }
- }
- return FALSE;
-}
-
diff --git a/plugins/utils_disk.h b/plugins/utils_disk.h
--- a/plugins/utils_disk.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Header file for utils_disk */
-
-#include "mountlist.h"
-
-struct name_list
-{
- char *name;
- struct name_list *next;
-};
-
-struct parameter_list
-{
- char *name;
- int found;
- int found_len;
- uintmax_t w_df;
- uintmax_t c_df;
- double w_dfp;
- double c_dfp;
- double w_idfp;
- double c_idfp;
- struct mount_entry *best_match;
- struct parameter_list *name_next;
-};
-
-void np_add_name (struct name_list **list, const char *name);
-int np_find_name (struct name_list *list, const char *name);
-int np_seen_name (struct name_list *list, const char *name);
-struct parameter_list *np_add_parameter(struct parameter_list **list, const char *name);
-int search_parameter_list (struct parameter_list *list, const char *name);