summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGES1
-rw-r--r--THANKS.in1
-rw-r--r--plugins/check_http.c38
-rw-r--r--plugins/t/check_http.t12
4 files changed, 27 insertions, 25 deletions
diff --git a/CHANGES b/CHANGES
index ea461db..3f5c0a6 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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
91.4.5 101.4.5
10 Fixed bug in perl's is_hostname routine 11 Fixed bug in perl's is_hostname routine
diff --git a/THANKS.in b/THANKS.in
index ae5ba1f..031cc4a 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -203,3 +203,4 @@ Florian Gleixner
203Pawel Malachowski 203Pawel Malachowski
204Duncan Ferguson 204Duncan Ferguson
205Dick van den Burg 205Dick van den Burg
206Matthias 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
91char timestamp[17] = "";
92int specify_port = FALSE; 91int specify_port = FALSE;
93int server_port = HTTP_PORT; 92int server_port = HTTP_PORT;
94char server_port_text[6] = ""; 93char 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;
9use Test::More; 9use Test::More;
10use NPTest; 10use NPTest;
11 11
12plan tests => 22; 12plan tests => 26;
13 13
14my $successOutput = '/OK.*HTTP.*second/'; 14my $successOutput = '/OK.*HTTP.*second/';
15 15
@@ -68,6 +68,14 @@ cmp_ok( $res->return_code, '==', 0, "Checking certificate for www.verisign.com")
68like ( $res->output, '/Certificate will expire on/', "Output OK" ); 68like ( $res->output, '/Certificate will expire on/', "Output OK" );
69my $saved_cert_output = $res->output; 69my $saved_cert_output = $res->output;
70 70
71$res = NPTest->testCmd( "./check_http www.verisign.com -C 1" );
72is( $res->return_code, 0, "Old syntax for cert checking okay" );
73is( $res->output, $saved_cert_output, "Same output as new syntax" );
74
75$res = NPTest->testCmd( "./check_http -H www.verisign.com -C 1" );
76is( $res->return_code, 0, "Updated syntax for cert checking okay" );
77is( $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" );
72cmp_ok( $res->output, 'eq', $saved_cert_output, "--ssl option automatically added"); 80cmp_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" );
97cmp_ok( $res->return_code, "==", 0, "And also when not found"); 105cmp_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" );
100is( $res->return_code, 0, "Redirection based on location is okay"); 108is( $res->return_code, 0, "Redirection based on location is okay");
101 109