Преглед на файлове

make state_text a function

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@440 f882894a-f735-0410-b71e-b25c423dba1c
Karl DeBisschop преди 23 години
родител
ревизия
4f29ac7115
променени са 2 файла, в които са добавени 33 реда и са изтрити 9 реда
  1. 31 1
      plugins/utils.c
  2. 2 8
      plugins/utils.h

+ 31 - 1
plugins/utils.c

@@ -24,7 +24,8 @@ extern const char *progname;
 void support (void);
 char *clean_revstring (const char *);
 void print_revision (const char *, const char *);
-void terminate (int, const char *fmt, ...);
+void die (int result, const char *fmt, ...);
+void terminate (int result, const char *fmt, ...);
 RETSIGTYPE timeout_alarm_handler (int);
 
 int is_integer (char *);
@@ -50,6 +51,8 @@ char *strnl (char *str);
 char *strpcpy (char *dest, const char *src, const char *str);
 char *strpcat (char *dest, const char *src, const char *str);
 
+char *state_text (int result);
+
 #define LABELLEN 63
 #define STRLEN 64
 #define TXTBLK 128
@@ -140,6 +143,33 @@ print_revision (const char *command_name, const char *revision_string)
 
 }
 
+char *
+state_text (int result)
+{
+	switch (result) {
+	case STATE_OK:
+		return "OK";
+	case STATE_WARNING:
+		return "WARNING";
+	case STATE_CRITICAL:
+		return "CRITICAL";
+	case STATE_DEPENDENT:
+		return "DEPENDENT";
+	default:
+		return "UNKNOWN";
+	}
+}
+
+void
+die (int result, const char *fmt, ...)
+{
+	printf ("%s %s: ", sizeof (char) + index(progname, '_'), state_text(result));
+	va_list ap;
+	va_start (ap, fmt);
+	vprintf (fmt, ap);
+	va_end (ap);
+	exit (result);
+}
 
 void
 terminate (int result, const char *fmt, ...)

+ 2 - 8
plugins/utils.h

@@ -17,6 +17,7 @@ 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);
 
@@ -71,17 +72,10 @@ void usage (char *msg);
 void usage2(char *msg, char *arg);
 void usage3(char *msg, char arg);
 
+char *state_text (int result);
 
 #define max(a,b) (((a)>(b))?(a):(b))
 
-#define state_text(a) \
-(a)==0?"OK":\
-(a)==1?"WARNING":\
-(a)==2?"CRITICAL":\
-(a)==3?"UNKNOWN":\
-(a)==4?"DEPENDENT":\
-"UNKNOWN"
-
 /* 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 */