diff options
| author | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-09-03 06:01:42 +0000 |
|---|---|---|
| committer | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-09-03 06:01:42 +0000 |
| commit | ec039d91e331037a041905b170f5f037fed11a17 (patch) | |
| tree | 8492b5764f95562e645e1f031bdc2c5396543a38 /plugins | |
| parent | 3d0384254969464c3e666d5c6cecd1907ee94661 (diff) | |
| download | monitoring-plugins-ec039d91e331037a041905b170f5f037fed11a17.tar.gz | |
allow warn/crit times to be floating point
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@711 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/check_dig.c | 57 |
1 files changed, 26 insertions, 31 deletions
diff --git a/plugins/check_dig.c b/plugins/check_dig.c index ecd80a2b..c67da30a 100644 --- a/plugins/check_dig.c +++ b/plugins/check_dig.c | |||
| @@ -32,6 +32,7 @@ const char *copyright = "2002-2003"; | |||
| 32 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; | 32 | const char *email = "nagiosplug-devel@lists.sourceforge.net"; |
| 33 | 33 | ||
| 34 | enum { | 34 | enum { |
| 35 | UNDEFINED = 0, | ||
| 35 | DEFAULT_PORT = 53 | 36 | DEFAULT_PORT = 53 |
| 36 | }; | 37 | }; |
| 37 | 38 | ||
| @@ -39,8 +40,8 @@ char *query_address = NULL; | |||
| 39 | char *dns_server = NULL; | 40 | char *dns_server = NULL; |
| 40 | int verbose = FALSE; | 41 | int verbose = FALSE; |
| 41 | int server_port = DEFAULT_PORT; | 42 | int server_port = DEFAULT_PORT; |
| 42 | int warning_interval = -1; | 43 | double warning_interval = UNDEFINED; |
| 43 | int critical_interval = -1; | 44 | double critical_interval = UNDEFINED; |
| 44 | struct timeval tv; | 45 | struct timeval tv; |
| 45 | 46 | ||
| 46 | int | 47 | int |
| @@ -140,31 +141,21 @@ main (int argc, char **argv) | |||
| 140 | if (output == NULL || strlen (output) == 0) | 141 | if (output == NULL || strlen (output) == 0) |
| 141 | asprintf (&output, _(" Probably a non-existent host/domain")); | 142 | asprintf (&output, _(" Probably a non-existent host/domain")); |
| 142 | 143 | ||
| 143 | if (critical_interval > 0 && elapsed_time > critical_interval) | 144 | if (critical_interval != UNDEFINED && elapsed_time > critical_interval) |
| 144 | printf (_("DNS OK - %.3f seconds response time (%s)"), elapsed_time, output); | 145 | result = STATE_CRITICAL; |
| 145 | 146 | ||
| 146 | else if (result == STATE_CRITICAL) | 147 | else if (warning_interval != UNDEFINED && elapsed_time > warning_interval) |
| 147 | printf (_("DNS CRITICAL - %s"), output); | 148 | result = STATE_WARNING; |
| 148 | 149 | ||
| 149 | else if (warning_interval > 0 && elapsed_time > warning_interval) | 150 | asprintf (&output, _("%.3f seconds response time (%s)"), elapsed_time, output); |
| 150 | printf (_("DNS OK - %.3f seconds response time (%s)"), elapsed_time, output); | ||
| 151 | 151 | ||
| 152 | else if (result == STATE_WARNING) | 152 | printf ("DNS %s - %s|%s\n", |
| 153 | printf (_("DNS WARNING - %s"), output); | 153 | state_text (result), output, |
| 154 | |||
| 155 | else if (result == STATE_OK) | ||
| 156 | printf (_("DNS OK - %.3f seconds response time (%s)"), | ||
| 157 | elapsed_time, output); | ||
| 158 | |||
| 159 | else | ||
| 160 | printf (_("DNS problem - %s"), output); | ||
| 161 | |||
| 162 | printf ("|%s\n", | ||
| 163 | perfdata("time", microsec, "us", | 154 | perfdata("time", microsec, "us", |
| 164 | (warning_interval>0?TRUE:FALSE), | 155 | (warning_interval!=UNDEFINED?TRUE:FALSE), |
| 165 | (int)1e6*warning_interval, | 156 | (int)(1e6*warning_interval), |
| 166 | (critical_interval>0?TRUE:FALSE), | 157 | (critical_interval!=UNDEFINED?TRUE:FALSE), |
| 167 | (int)1e6*critical_interval, | 158 | (int)(1e6*critical_interval), |
| 168 | TRUE, 0, FALSE, 0)); | 159 | TRUE, 0, FALSE, 0)); |
| 169 | return result; | 160 | return result; |
| 170 | } | 161 | } |
| @@ -224,26 +215,30 @@ process_arguments (int argc, char **argv) | |||
| 224 | server_port = atoi (optarg); | 215 | server_port = atoi (optarg); |
| 225 | } | 216 | } |
| 226 | else { | 217 | else { |
| 227 | usage2 (_("Server port must be a nonnegative integer\n"), optarg); | 218 | usage2 (_("Server port must be a nonnegative integer"), optarg); |
| 228 | } | 219 | } |
| 229 | break; | 220 | break; |
| 230 | case 'l': /* address to lookup */ | 221 | case 'l': /* address to lookup */ |
| 231 | query_address = optarg; | 222 | query_address = optarg; |
| 232 | break; | 223 | break; |
| 233 | case 'w': /* warning */ | 224 | case 'w': /* warning */ |
| 234 | if (is_intnonneg (optarg)) { | 225 | if (is_nonnegative (optarg)) { |
| 235 | warning_interval = atoi (optarg); | 226 | warning_interval = strtod (optarg, NULL); |
| 227 | if (warning_interval == HUGE_VAL) | ||
| 228 | usage2 (_("Input causes overflow in warning interval"), optarg); | ||
| 236 | } | 229 | } |
| 237 | else { | 230 | else { |
| 238 | usage2 (_("Warning interval must be a nonnegative integer\n"), optarg); | 231 | usage2 (_("Warning interval must be a nonnegative integer"), optarg); |
| 239 | } | 232 | } |
| 240 | break; | 233 | break; |
| 241 | case 'c': /* critical */ | 234 | case 'c': /* critical */ |
| 242 | if (is_intnonneg (optarg)) { | 235 | if (is_nonnegative (optarg)) { |
| 243 | critical_interval = atoi (optarg); | 236 | critical_interval = strtod (optarg, NULL); |
| 237 | if (critical_interval == HUGE_VAL) | ||
| 238 | usage2 (_("Input causes overflow in critical interval"), optarg); | ||
| 244 | } | 239 | } |
| 245 | else { | 240 | else { |
| 246 | usage2 (_("Critical interval must be a nonnegative integer\n"), optarg); | 241 | usage2 (_("Critical interval must be a nonnegative integer"), optarg); |
| 247 | } | 242 | } |
| 248 | break; | 243 | break; |
| 249 | case 't': /* timeout */ | 244 | case 't': /* timeout */ |
| @@ -251,7 +246,7 @@ process_arguments (int argc, char **argv) | |||
| 251 | timeout_interval = atoi (optarg); | 246 | timeout_interval = atoi (optarg); |
| 252 | } | 247 | } |
| 253 | else { | 248 | else { |
| 254 | usage2 (_("Time interval must be a nonnegative integer\n"), optarg); | 249 | usage2 (_("Time interval must be a nonnegative integer"), optarg); |
| 255 | } | 250 | } |
| 256 | break; | 251 | break; |
| 257 | case 'v': /* verbose */ | 252 | case 'v': /* verbose */ |
