Code

Fix translations when extra-opts aren't enabled
[nagiosplug.git] / plugins / utils.h
index b345f7a2b7da517822a756019ce29413797d9914..8da2160e86eebb1c6126b4826212fb4fb2ff7b30 100644 (file)
@@ -1,30 +1,47 @@
-/* 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 */
 
-char *my_basename (char *);
 void support (void);
-char *clean_revstring (const char *revstring);
 void print_revision (const char *, const char *);
-void die (int result, const char *fmt, ...);
-void terminate (int result, char *msg, ...);
-extern RETSIGTYPE timeout_alarm_handler (int);
 
 /* 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
+
 time_t start_time, end_time;
-int timeout_interval = DEFAULT_SOCKET_TIMEOUT;
 
 /* Test input types */
 
@@ -42,7 +59,7 @@ int is_percentage (char *);
 
 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 */
@@ -51,30 +68,58 @@ struct timeval {
 #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, char *src);
-char *strscat (char *dest, char *src);
-char *strnl (char *str);
-char *ssprintf (char *str, const char *fmt, ...); /* deprecate for asprintf */
-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);
-void usage2(char *msg, char *arg);
-void usage3(char *msg, char arg);
+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));
 
-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 
@@ -89,3 +134,76 @@ char *state_text (int result);
 {"warning",required_argument,0,'w'},\
 {"hostname",required_argument,0,'H'}
 
+#define COPYRIGHT "Copyright (c) %s Nagios Plugin Development Team\n\
+\t<%s>\n\n"
+
+#define UT_HLP_VRS _("\
+       %s (-h | --help) for detailed help\n\
+       %s (-V | --version) for version information\n")
+
+#define UT_HELP_VRSN _("\
+\nOptions:\n\
+ -h, --help\n\
+    Print detailed help screen\n\
+ -V, --version\n\
+    Print version information\n")
+
+#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")
+
+#define UT_IPv46 _("\
+ -4, --use-ipv4\n\
+    Use IPv4 connection\n\
+ -6, --use-ipv6\n\
+    Use IPv6 connection\n")
+
+#define UT_VERBOSE _("\
+ -v, --verbose\n\
+    Show details for command-line debugging (Nagios may truncate output)\n")
+
+#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")
+
+#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 _("\
+ -t, --timeout=INTEGER\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\
+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\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")
+
+#endif /* NP_UTILS_H */