summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 3d03842)
raw | patch | inline | side by side (parent: 3d03842)
author | Karl DeBisschop <kdebisschop@users.sourceforge.net> | |
Wed, 3 Sep 2003 06:01:42 +0000 (06:01 +0000) | ||
committer | Karl DeBisschop <kdebisschop@users.sourceforge.net> | |
Wed, 3 Sep 2003 06:01:42 +0000 (06:01 +0000) |
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@711 f882894a-f735-0410-b71e-b25c423dba1c
plugins/check_dig.c | patch | blob | history |
diff --git a/plugins/check_dig.c b/plugins/check_dig.c
index ecd80a2be68db5ba9af451a2a8652631c1724e79..c67da30aaf4b74b2f068eb5723c2ae26eeaaccb8 100644 (file)
--- a/plugins/check_dig.c
+++ b/plugins/check_dig.c
const char *email = "nagiosplug-devel@lists.sourceforge.net";
enum {
+ UNDEFINED = 0,
DEFAULT_PORT = 53
};
char *dns_server = NULL;
int verbose = FALSE;
int server_port = DEFAULT_PORT;
-int warning_interval = -1;
-int critical_interval = -1;
+double warning_interval = UNDEFINED;
+double critical_interval = UNDEFINED;
struct timeval tv;
int
if (output == NULL || strlen (output) == 0)
asprintf (&output, _(" Probably a non-existent host/domain"));
- if (critical_interval > 0 && elapsed_time > critical_interval)
- printf (_("DNS OK - %.3f seconds response time (%s)"), elapsed_time, output);
+ if (critical_interval != UNDEFINED && elapsed_time > critical_interval)
+ result = STATE_CRITICAL;
- else if (result == STATE_CRITICAL)
- printf (_("DNS CRITICAL - %s"), output);
+ else if (warning_interval != UNDEFINED && elapsed_time > warning_interval)
+ result = STATE_WARNING;
- else if (warning_interval > 0 && elapsed_time > warning_interval)
- printf (_("DNS OK - %.3f seconds response time (%s)"), elapsed_time, output);
+ asprintf (&output, _("%.3f seconds response time (%s)"), elapsed_time, output);
- else if (result == STATE_WARNING)
- printf (_("DNS WARNING - %s"), output);
-
- else if (result == STATE_OK)
- printf (_("DNS OK - %.3f seconds response time (%s)"),
- elapsed_time, output);
-
- else
- printf (_("DNS problem - %s"), output);
-
- printf ("|%s\n",
+ printf ("DNS %s - %s|%s\n",
+ state_text (result), output,
perfdata("time", microsec, "us",
- (warning_interval>0?TRUE:FALSE),
- (int)1e6*warning_interval,
- (critical_interval>0?TRUE:FALSE),
- (int)1e6*critical_interval,
+ (warning_interval!=UNDEFINED?TRUE:FALSE),
+ (int)(1e6*warning_interval),
+ (critical_interval!=UNDEFINED?TRUE:FALSE),
+ (int)(1e6*critical_interval),
TRUE, 0, FALSE, 0));
return result;
}
server_port = atoi (optarg);
}
else {
- usage2 (_("Server port must be a nonnegative integer\n"), optarg);
+ usage2 (_("Server port must be a nonnegative integer"), optarg);
}
break;
case 'l': /* address to lookup */
query_address = optarg;
break;
case 'w': /* warning */
- if (is_intnonneg (optarg)) {
- warning_interval = atoi (optarg);
+ if (is_nonnegative (optarg)) {
+ warning_interval = strtod (optarg, NULL);
+ if (warning_interval == HUGE_VAL)
+ usage2 (_("Input causes overflow in warning interval"), optarg);
}
else {
- usage2 (_("Warning interval must be a nonnegative integer\n"), optarg);
+ usage2 (_("Warning interval must be a nonnegative integer"), optarg);
}
break;
case 'c': /* critical */
- if (is_intnonneg (optarg)) {
- critical_interval = atoi (optarg);
+ if (is_nonnegative (optarg)) {
+ critical_interval = strtod (optarg, NULL);
+ if (critical_interval == HUGE_VAL)
+ usage2 (_("Input causes overflow in critical interval"), optarg);
}
else {
- usage2 (_("Critical interval must be a nonnegative integer\n"), optarg);
+ usage2 (_("Critical interval must be a nonnegative integer"), optarg);
}
break;
case 't': /* timeout */
timeout_interval = atoi (optarg);
}
else {
- usage2 (_("Time interval must be a nonnegative integer\n"), optarg);
+ usage2 (_("Time interval must be a nonnegative integer"), optarg);
}
break;
case 'v': /* verbose */