diff options
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | THANKS.in | 1 | ||||
-rw-r--r-- | plugins/check_http.c | 38 | ||||
-rw-r--r-- | plugins/t/check_http.t | 12 |
4 files changed, 27 insertions, 25 deletions
@@ -5,6 +5,7 @@ This file documents the major additions and syntax changes between releases. | |||
5 | Fixed compile problems with *BSD re: alloca.h | 5 | Fixed compile problems with *BSD re: alloca.h |
6 | Fixed Solaris problems with check_swap (tested on Solaris 9) | 6 | Fixed Solaris problems with check_swap (tested on Solaris 9) |
7 | Fixed check_swap for HP/UX where swapinfo command was incorrect | 7 | Fixed check_swap for HP/UX where swapinfo command was incorrect |
8 | Fixed check_disk inode threshold checks, regressed at r1.4.4. | ||
8 | 9 | ||
9 | 1.4.5 | 10 | 1.4.5 |
10 | Fixed bug in perl's is_hostname routine | 11 | Fixed bug in perl's is_hostname routine |
@@ -203,3 +203,4 @@ Florian Gleixner | |||
203 | Pawel Malachowski | 203 | Pawel Malachowski |
204 | Duncan Ferguson | 204 | Duncan Ferguson |
205 | Dick van den Burg | 205 | Dick van den Burg |
206 | Matthias Eble | ||
diff --git a/plugins/check_http.c b/plugins/check_http.c index 05ae55b..203ebe5 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
@@ -88,7 +88,6 @@ struct timeval tv; | |||
88 | #define HTTP_URL "/" | 88 | #define HTTP_URL "/" |
89 | #define CRLF "\r\n" | 89 | #define CRLF "\r\n" |
90 | 90 | ||
91 | char timestamp[17] = ""; | ||
92 | int specify_port = FALSE; | 91 | int specify_port = FALSE; |
93 | int server_port = HTTP_PORT; | 92 | int server_port = HTTP_PORT; |
94 | char server_port_text[6] = ""; | 93 | char server_port_text[6] = ""; |
@@ -147,13 +146,6 @@ main (int argc, char **argv) | |||
147 | if (process_arguments (argc, argv) == ERROR) | 146 | if (process_arguments (argc, argv) == ERROR) |
148 | usage4 (_("Could not parse arguments")); | 147 | usage4 (_("Could not parse arguments")); |
149 | 148 | ||
150 | if (strstr (timestamp, ":")) { | ||
151 | if (strstr (server_url, "?")) | ||
152 | asprintf (&server_url, "%s&%s", server_url, timestamp); | ||
153 | else | ||
154 | asprintf (&server_url, "%s?%s", server_url, timestamp); | ||
155 | } | ||
156 | |||
157 | if (display_html == TRUE) | 149 | if (display_html == TRUE) |
158 | printf ("<A HREF=\"%s://%s:%d%s\" target=\"_blank\">", | 150 | printf ("<A HREF=\"%s://%s:%d%s\" target=\"_blank\">", |
159 | use_ssl ? "https" : "http", host_name, | 151 | use_ssl ? "https" : "http", host_name, |
@@ -861,7 +853,7 @@ check_http (void) | |||
861 | 853 | ||
862 | /* return a CRITICAL status if we couldn't read any data */ | 854 | /* return a CRITICAL status if we couldn't read any data */ |
863 | if (pagesize == (size_t) 0) | 855 | if (pagesize == (size_t) 0) |
864 | die (STATE_CRITICAL, _("No data received %s\n"), timestamp); | 856 | die (STATE_CRITICAL, _("No data received from host\n")); |
865 | 857 | ||
866 | /* close the connection */ | 858 | /* close the connection */ |
867 | #ifdef HAVE_SSL | 859 | #ifdef HAVE_SSL |
@@ -967,8 +959,8 @@ check_http (void) | |||
967 | microsec = deltime (tv); | 959 | microsec = deltime (tv); |
968 | elapsed_time = (double)microsec / 1.0e6; | 960 | elapsed_time = (double)microsec / 1.0e6; |
969 | die (onredirect, | 961 | die (onredirect, |
970 | _(" - %s - %.3f second response time %s%s|%s %s\n"), | 962 | _(" - %s - %.3f second response time %s|%s %s\n"), |
971 | status_line, elapsed_time, timestamp, | 963 | status_line, elapsed_time, |
972 | (display_html ? "</A>" : ""), | 964 | (display_html ? "</A>" : ""), |
973 | perfd_time (elapsed_time), perfd_size (pagesize)); | 965 | perfd_time (elapsed_time), perfd_size (pagesize)); |
974 | } /* end if (http_status >= 300) */ | 966 | } /* end if (http_status >= 300) */ |
@@ -983,8 +975,8 @@ check_http (void) | |||
983 | microsec = deltime (tv); | 975 | microsec = deltime (tv); |
984 | elapsed_time = (double)microsec / 1.0e6; | 976 | elapsed_time = (double)microsec / 1.0e6; |
985 | asprintf (&msg, | 977 | asprintf (&msg, |
986 | _("HTTP WARNING: %s - %.3f second response time %s%s|%s %s\n"), | 978 | _("HTTP WARNING: %s - %.3f second response time %s|%s %s\n"), |
987 | status_line, elapsed_time, timestamp, | 979 | status_line, elapsed_time, |
988 | (display_html ? "</A>" : ""), | 980 | (display_html ? "</A>" : ""), |
989 | perfd_time (elapsed_time), perfd_size (pagesize)); | 981 | perfd_time (elapsed_time), perfd_size (pagesize)); |
990 | if (check_critical_time == TRUE && elapsed_time > critical_time) | 982 | if (check_critical_time == TRUE && elapsed_time > critical_time) |
@@ -997,9 +989,9 @@ check_http (void) | |||
997 | 989 | ||
998 | if (strlen (string_expect)) { | 990 | if (strlen (string_expect)) { |
999 | if (strstr (page, string_expect)) { | 991 | if (strstr (page, string_expect)) { |
1000 | printf (_("HTTP OK %s - %.3f second response time %s%s|%s %s\n"), | 992 | printf (_("HTTP OK %s - %.3f second response time %s|%s %s\n"), |
1001 | status_line, elapsed_time, | 993 | status_line, elapsed_time, |
1002 | timestamp, (display_html ? "</A>" : ""), | 994 | (display_html ? "</A>" : ""), |
1003 | perfd_time (elapsed_time), perfd_size (pagesize)); | 995 | perfd_time (elapsed_time), perfd_size (pagesize)); |
1004 | exit (STATE_OK); | 996 | exit (STATE_OK); |
1005 | } | 997 | } |
@@ -1014,9 +1006,9 @@ check_http (void) | |||
1014 | if (strlen (regexp)) { | 1006 | if (strlen (regexp)) { |
1015 | errcode = regexec (&preg, page, REGS, pmatch, 0); | 1007 | errcode = regexec (&preg, page, REGS, pmatch, 0); |
1016 | if ((errcode == 0 && invert_regex == 0) || (errcode == REG_NOMATCH && invert_regex == 1)) { | 1008 | if ((errcode == 0 && invert_regex == 0) || (errcode == REG_NOMATCH && invert_regex == 1)) { |
1017 | printf (_("HTTP OK %s - %.3f second response time %s%s|%s %s\n"), | 1009 | printf (_("HTTP OK %s - %.3f second response time %s|%s %s\n"), |
1018 | status_line, elapsed_time, | 1010 | status_line, elapsed_time, |
1019 | timestamp, (display_html ? "</A>" : ""), | 1011 | (display_html ? "</A>" : ""), |
1020 | perfd_time (elapsed_time), perfd_size (pagesize)); | 1012 | perfd_time (elapsed_time), perfd_size (pagesize)); |
1021 | exit (STATE_OK); | 1013 | exit (STATE_OK); |
1022 | } | 1014 | } |
@@ -1052,9 +1044,9 @@ check_http (void) | |||
1052 | exit (STATE_WARNING); | 1044 | exit (STATE_WARNING); |
1053 | } | 1045 | } |
1054 | /* We only get here if all tests have been passed */ | 1046 | /* We only get here if all tests have been passed */ |
1055 | asprintf (&msg, _("HTTP OK %s - %d bytes in %.3f seconds %s%s|%s %s\n"), | 1047 | asprintf (&msg, _("HTTP OK %s - %d bytes in %.3f seconds %s|%s %s\n"), |
1056 | status_line, page_len, elapsed_time, | 1048 | status_line, page_len, elapsed_time, |
1057 | timestamp, (display_html ? "</A>" : ""), | 1049 | (display_html ? "</A>" : ""), |
1058 | perfd_time (elapsed_time), perfd_size (page_len)); | 1050 | perfd_time (elapsed_time), perfd_size (page_len)); |
1059 | die (STATE_OK, "%s", msg); | 1051 | die (STATE_OK, "%s", msg); |
1060 | return STATE_UNKNOWN; | 1052 | return STATE_UNKNOWN; |
@@ -1263,9 +1255,9 @@ print_help (void) | |||
1263 | 1255 | ||
1264 | #ifdef HAVE_SSL | 1256 | #ifdef HAVE_SSL |
1265 | printf (" %s\n", "-S, --ssl"); | 1257 | printf (" %s\n", "-S, --ssl"); |
1266 | printf (" %s\n", _("Connect via SSL")); | 1258 | printf (" %s\n", _("Connect via SSL. Port defaults to 443")); |
1267 | printf (" %s\n", "-C, --certificate=INTEGER"); | 1259 | printf (" %s\n", "-C, --certificate=INTEGER"); |
1268 | printf (" %s\n", _("Minimum number of days a certificate has to be valid.")); | 1260 | printf (" %s\n", _("Minimum number of days a certificate has to be valid. Port defaults to 443")); |
1269 | printf (" %s\n", _("(when this option is used the url is not checked.)\n")); | 1261 | printf (" %s\n", _("(when this option is used the url is not checked.)\n")); |
1270 | #endif | 1262 | #endif |
1271 | 1263 | ||
@@ -1329,13 +1321,13 @@ print_help (void) | |||
1329 | printf (" %s\n", _("serve content (optionally within a specified time) or whether the X509 ")); | 1321 | printf (" %s\n", _("serve content (optionally within a specified time) or whether the X509 ")); |
1330 | printf (" %s\n", _("certificate is still valid for the specified number of days.")); | 1322 | printf (" %s\n", _("certificate is still valid for the specified number of days.")); |
1331 | printf (_("Examples:")); | 1323 | printf (_("Examples:")); |
1332 | printf (" %s\n\n", "CHECK CONTENT: check_http -w 5 -c 10 --ssl www.verisign.com"); | 1324 | printf (" %s\n\n", "CHECK CONTENT: check_http -w 5 -c 10 --ssl -H www.verisign.com"); |
1333 | printf (" %s\n", _("When the 'www.verisign.com' server returns its content within 5 seconds,")); | 1325 | printf (" %s\n", _("When the 'www.verisign.com' server returns its content within 5 seconds,")); |
1334 | printf (" %s\n", _("a STATE_OK will be returned. When the server returns its content but exceeds")); | 1326 | printf (" %s\n", _("a STATE_OK will be returned. When the server returns its content but exceeds")); |
1335 | printf (" %s\n", _("the 5-second threshold, a STATE_WARNING will be returned. When an error occurs,")); | 1327 | printf (" %s\n", _("the 5-second threshold, a STATE_WARNING will be returned. When an error occurs,")); |
1336 | printf (" %s\n\n", _("a STATE_CRITICAL will be returned.")); | 1328 | printf (" %s\n\n", _("a STATE_CRITICAL will be returned.")); |
1337 | 1329 | ||
1338 | printf (" %s\n\n", "CHECK CERTIFICATE: check_http www.verisign.com -C 14"); | 1330 | printf (" %s\n\n", "CHECK CERTIFICATE: check_http -H www.verisign.com -C 14"); |
1339 | printf (" %s\n", _("When the certificate of 'www.verisign.com' is valid for more than 14 days,")); | 1331 | printf (" %s\n", _("When the certificate of 'www.verisign.com' is valid for more than 14 days,")); |
1340 | printf (" %s\n", _("a STATE_OK is returned. When the certificate is still valid, but for less than")); | 1332 | printf (" %s\n", _("a STATE_OK is returned. When the certificate is still valid, but for less than")); |
1341 | printf (" %s\n", _("14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when")); | 1333 | printf (" %s\n", _("14 days, a STATE_WARNING is returned. A STATE_CRITICAL will be returned when")); |
diff --git a/plugins/t/check_http.t b/plugins/t/check_http.t index 21ac0f7..5b67886 100644 --- a/plugins/t/check_http.t +++ b/plugins/t/check_http.t | |||
@@ -9,7 +9,7 @@ use strict; | |||
9 | use Test::More; | 9 | use Test::More; |
10 | use NPTest; | 10 | use NPTest; |
11 | 11 | ||
12 | plan tests => 22; | 12 | plan tests => 26; |
13 | 13 | ||
14 | my $successOutput = '/OK.*HTTP.*second/'; | 14 | my $successOutput = '/OK.*HTTP.*second/'; |
15 | 15 | ||
@@ -68,6 +68,14 @@ cmp_ok( $res->return_code, '==', 0, "Checking certificate for www.verisign.com") | |||
68 | like ( $res->output, '/Certificate will expire on/', "Output OK" ); | 68 | like ( $res->output, '/Certificate will expire on/', "Output OK" ); |
69 | my $saved_cert_output = $res->output; | 69 | my $saved_cert_output = $res->output; |
70 | 70 | ||
71 | $res = NPTest->testCmd( "./check_http www.verisign.com -C 1" ); | ||
72 | is( $res->return_code, 0, "Old syntax for cert checking okay" ); | ||
73 | is( $res->output, $saved_cert_output, "Same output as new syntax" ); | ||
74 | |||
75 | $res = NPTest->testCmd( "./check_http -H www.verisign.com -C 1" ); | ||
76 | is( $res->return_code, 0, "Updated syntax for cert checking okay" ); | ||
77 | is( $res->output, $saved_cert_output, "Same output as new syntax" ); | ||
78 | |||
71 | $res = NPTest->testCmd( "./check_http -C 1 www.verisign.com" ); | 79 | $res = NPTest->testCmd( "./check_http -C 1 www.verisign.com" ); |
72 | cmp_ok( $res->output, 'eq', $saved_cert_output, "--ssl option automatically added"); | 80 | cmp_ok( $res->output, 'eq', $saved_cert_output, "--ssl option automatically added"); |
73 | 81 | ||
@@ -96,6 +104,6 @@ like ( $res->output, "/pattern found/", "Error message says 'pattern found'"); | |||
96 | $res = NPTest->testCmd( "./check_http -H altinity.com -r 'nAGiOs' --invert-regex" ); | 104 | $res = NPTest->testCmd( "./check_http -H altinity.com -r 'nAGiOs' --invert-regex" ); |
97 | cmp_ok( $res->return_code, "==", 0, "And also when not found"); | 105 | cmp_ok( $res->return_code, "==", 0, "And also when not found"); |
98 | 106 | ||
99 | $res = NPTest->testCmd( "./check_http -H www.worldfirefoxday.com -f follow" ); | 107 | $res = NPTest->testCmd( "./check_http -H www.mozilla.com -u /firefox -f follow" ); |
100 | is( $res->return_code, 0, "Redirection based on location is okay"); | 108 | is( $res->return_code, 0, "Redirection based on location is okay"); |
101 | 109 | ||