Code

Updated Nagios::Plugin library
[nagiosplug.git] / plugins / utils.h
index ffcb39daeec77c5e16e0c6b76b9e5bb7527f02d0..8da2160e86eebb1c6126b4826212fb4fb2ff7b30 100644 (file)
@@ -13,21 +13,30 @@ in order to resist overflow attacks. In addition, a few functions are
 provided to standardize version and error reporting across the entire
 suite of plugins. */
 
-/* Standardize version information, termination */
+/* now some functions etc are being defined in ../lib/utils_base.c */
+#include "utils_base.h"
 
-/* $Id$ */
+#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 *);
 void print_revision (const char *, const char *);
-void die (int, const char *, ...) __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
@@ -58,28 +67,6 @@ struct timeval {
 };
 #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
@@ -96,12 +83,14 @@ 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 (const char *) __attribute__((noreturn));
 void usage2(const char *, const char *) __attribute__((noreturn));
 void usage3(const char *, int) __attribute__((noreturn));
-void usage4(const char *);
-void usage_va(const char *fmt, ...);
+void usage4(const char *) __attribute__((noreturn));
+void usage5(void) __attribute__((noreturn));
+void usage_va(const char *fmt, ...) __attribute__((noreturn));
 
 const char *state_text (int);
 
@@ -148,51 +137,73 @@ char *fperfdata (const char *,
 #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, 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")
+
+#ifdef NP_EXTRA_OPTS
+#define UT_EXTRA_OPTS _("\
+ --extra-opts=[section][@file]\n\
+    Read additionnal options from ini file\n")
+#define UT_EXTRA_OPTS_NOTES _("\
+ See: http://nagiosplugins.org/extra-opts for --extra-opts usage and examples.\n")
+#else
+#define UT_EXTRA_OPTS ""
+#define UT_EXTRA_OPTS_NOTES ""
+#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\
+#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 "\n\
+#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 */