diff --git a/plugins/utils.h b/plugins/utils.h
index c378e459ab8b8753b6686d7362e3ff438236e247..3c3f1892458b350a6783ce8f425e118bbec53bfd 100644 (file)
--- a/plugins/utils.h
+++ b/plugins/utils.h
-/* header file for nagios plugins utils.c */
+#ifndef NP_UTILS_H
+#define NP_UTILS_H
+/* Header file for nagios plugins utils.c */
-/* this file should be included in all plugins */
+/* This file should be included in all plugins */
-/* The purpose of this package is to provide safer alternantives to C
+/* The purpose of this package is to provide safer alternatives to C
functions that might otherwise be vulnerable to hacking. This
currently includes a standard suite of validation routines to be sure
that an string argument acually converts to its intended type and a
suite of string handling routine that do their own memory management
in order to resist overflow attacks. In addition, a few functions are
-provided to standardize version and error reporting accross the entire
+provided to standardize version and error reporting across the entire
suite of plugins. */
+/* now some functions etc are being defined in ../lib/utils_base.c */
+#include "utils_base.h"
+
+#ifdef NP_EXTRA_OPTS
+/* Include extra-opts functions if compiled in */
+#include "extra_opts.h"
+#else
+/* else, fake np_extra_opts */
+#define np_extra_opts(acptr,av,pr) av
+#endif
+
/* Standardize version information, termination */
void support (void);
-char *clean_revstring (const char *revstring);
void print_revision (const char *, const char *);
-void die (int result, const char *fmt, ...) __attribute__((noreturn,format(printf, 2, 3)));
/* Handle timeouts */
#ifdef LOCAL_TIMEOUT_ALARM_HANDLER
+extern unsigned int timeout_state;
extern unsigned int timeout_interval;
RETSIGTYPE timeout_alarm_handler (int);
#else
+unsigned int timeout_state = STATE_CRITICAL;
unsigned int timeout_interval = DEFAULT_SOCKET_TIMEOUT;
extern RETSIGTYPE timeout_alarm_handler (int);
#endif
int is_option (char *);
-/* generalized timer that will do milliseconds if available */
+/* Generalized timer that will do milliseconds if available */
#ifndef HAVE_STRUCT_TIMEVAL
struct timeval {
long tv_sec; /* seconds */
#endif
#ifndef HAVE_GETTIMEOFDAY
-int gettimeofday(struct timeval *tv, struct timezone *tz);
+int gettimeofday(struct timeval *, struct timezone *);
#endif
double delta_time (struct timeval tv);
+long deltime (struct timeval tv);
/* Handle strings safely */
-void strip (char *buffer);
-char *strscpy (char *dest, const char *src);
-char *strnl (char *str);
-char *strpcpy (char *dest, const char *src, const char *str);
-char *strpcat (char *dest, const char *src, const char *str);
+void strip (char *);
+char *strscpy (char *, const char *);
+char *strnl (char *);
+char *strpcpy (char *, const char *, const char *);
+char *strpcat (char *, const char *, const char *);
int max_state (int a, int b);
+int max_state_alt (int a, int b);
-void usage (char *msg) __attribute__((noreturn));
-void usage2(char *msg, char *arg) __attribute__((noreturn));
-void usage3(char *msg, int arg) __attribute__((noreturn));
+void usage (const char *) __attribute__((noreturn));
+void usage2(const char *, const char *) __attribute__((noreturn));
+void usage3(const char *, int) __attribute__((noreturn));
+void usage4(const char *) __attribute__((noreturn));
+void usage5(void) __attribute__((noreturn));
+void usage_va(const char *fmt, ...) __attribute__((noreturn));
-const char *state_text (int result);
+const char *state_text (int);
#define max(a,b) (((a)>(b))?(a):(b))
+#define min(a,b) (((a)<(b))?(a):(b))
+
+char *perfdata (const char *,
+ long int,
+ const char *,
+ int,
+ long int,
+ int,
+ long int,
+ int,
+ long int,
+ int,
+ long int);
+
+char *fperfdata (const char *,
+ double,
+ const char *,
+ int,
+ double,
+ int,
+ double,
+ int,
+ double,
+ int,
+ double);
/* The idea here is that, although not every plugin will use all of these,
most will or should. Therefore, for consistency, these very common
#define COPYRIGHT "Copyright (c) %s Nagios Plugin Development Team\n\
\t<%s>\n\n"
-#define UT_HLP_VRS "\
+#define UT_HLP_VRS _("\
%s (-h | --help) for detailed help\n\
- %s (-V | --version) for version information\n"
+ %s (-V | --version) for version information\n")
-#define UT_HELP_VRSN "\
+#define UT_HELP_VRSN _("\
\nOptions:\n\
-h, --help\n\
Print detailed help screen\n\
-V, --version\n\
- Print version information\n"
+ Print version information\n")
-#define UT_HOST_PORT "\
+#define UT_HOST_PORT _("\
-H, --hostname=ADDRESS\n\
- Host name or IP Address\n\
+ Host name, IP Address, or unix socket (must be an absolute path)\n\
-%c, --port=INTEGER\n\
- Port number (default: %s)\n"
+ Port number (default: %s)\n")
-#define UT_IPv46 "\
+#define UT_IPv46 _("\
-4, --use-ipv4\n\
Use IPv4 connection\n\
-6, --use-ipv6\n\
- Use IPv6 connection\n"
+ Use IPv6 connection\n")
-#define UT_VERBOSE "\
+#define UT_VERBOSE _("\
-v, --verbose\n\
- Show details for command-line debugging (Nagios may truncate output)\n"
+ Show details for command-line debugging (Nagios may truncate output)\n")
-#define UT_WARN_CRIT "\
+#define UT_WARN_CRIT _("\
-w, --warning=DOUBLE\n\
Response time to result in warning status (seconds)\n\
-c, --critical=DOUBLE\n\
- Response time to result in critical status (seconds)\n"
+ Response time to result in critical status (seconds)\n")
+
+#define UT_WARN_CRIT_RANGE _("\
+ -w, --warning=RANGE\n\
+ Warning range (format: start:end). Alert if outside this range\n\
+ -c, --critical=RANGE\n\
+ Critical range\n")
-#define UT_TIMEOUT "\
+#define UT_TIMEOUT _("\
-t, --timeout=INTEGER\n\
- Seconds before connection times out (default: %d)\n"
+ Seconds before connection times out (default: %d)\n")
-#define UT_SUPPORT "\n\
+#ifdef NP_EXTRA_OPTS
+#define UT_EXTRA_OPTS _("\
+ --extra-opts=[section][@file]\n\
+ Read options from an ini file. See http://nagiosplugins.org/extra-opts\n\
+ for usage and examples.\n")
+#else
+#define UT_EXTRA_OPTS ""
+#endif
+
+#define UT_THRESHOLDS_NOTES _("\
+ See:\n\
+ http://nagiosplug.sourceforge.net/developer-guidelines.html#THRESHOLDFORMAT\n\
+ for THRESHOLD format and examples.\n")
+
+#define UT_SUPPORT _("\n\
Send email to nagios-users@lists.sourceforge.net if you have questions\n\
regarding use of this software. To submit patches or suggest improvements,\n\
-send email to nagiosplug-devel@lists.sourceforge.net\n"
+send email to nagiosplug-devel@lists.sourceforge.net\n\n")
-#define UT_NOWARRANTY "\
+#define UT_NOWARRANTY _("\n\
The nagios plugins come with ABSOLUTELY NO WARRANTY. You may redistribute\n\
copies of the plugins under the terms of the GNU General Public License.\n\
-For more information about these matters, see the file named COPYING.\n"
+For more information about these matters, see the file named COPYING.\n")
+
+#endif /* NP_UTILS_H */