diff options
| author | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-09-11 08:02:31 +0000 |
|---|---|---|
| committer | Karl DeBisschop <kdebisschop@users.sourceforge.net> | 2003-09-11 08:02:31 +0000 |
| commit | 9f032b16eefcee5534fbb5cb5b4c30bba4ba3be2 (patch) | |
| tree | c0faa9b3f647cd265210944d76d90f5f2d0381c8 /plugins | |
| parent | 4b94b86bb9ddc521e8c61d50f90093a4e7b9f246 (diff) | |
| download | monitoring-plugins-9f032b16eefcee5534fbb5cb5b4c30bba4ba3be2.tar.gz | |
use prefdata function
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@717 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/check_http.c | 60 |
1 files changed, 39 insertions, 21 deletions
diff --git a/plugins/check_http.c b/plugins/check_http.c index cffe810f..c68b2087 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 15 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| 16 | 16 | ||
| 17 | ******************************************************************************/ | 17 | ******************************************************************************/ |
| 18 | /* splint -I. -I../../plugins -I../../lib/ -I/usr/kerberos/include/ ../../plugins/check_http.c */ | ||
| 18 | 19 | ||
| 19 | const char *progname = "check_http"; | 20 | const char *progname = "check_http"; |
| 20 | const char *revision = "$Revision$"; | 21 | const char *revision = "$Revision$"; |
| @@ -115,9 +116,10 @@ char buffer[MAX_INPUT_BUFFER]; | |||
| 115 | int process_arguments (int, char **); | 116 | int process_arguments (int, char **); |
| 116 | static char *base64 (const char *bin, size_t len); | 117 | static char *base64 (const char *bin, size_t len); |
| 117 | int check_http (void); | 118 | int check_http (void); |
| 118 | int redir (char *pos, char *status_line); | 119 | void redir (char *pos, char *status_line); |
| 119 | int server_type_check(const char *type); | 120 | int server_type_check(const char *type); |
| 120 | int server_port_check(int ssl_flag); | 121 | int server_port_check(int ssl_flag); |
| 122 | char *perfd_time (long microsec); | ||
| 121 | int my_recv (void); | 123 | int my_recv (void); |
| 122 | int my_close (void); | 124 | int my_close (void); |
| 123 | void print_help (void); | 125 | void print_help (void); |
| @@ -669,10 +671,11 @@ check_http (void) | |||
| 669 | printf (_("CRITICAL")); | 671 | printf (_("CRITICAL")); |
| 670 | microsec = deltime (tv); | 672 | microsec = deltime (tv); |
| 671 | elapsed_time = (double)microsec / 1.0e6; | 673 | elapsed_time = (double)microsec / 1.0e6; |
| 672 | asprintf (&msg, _(" - %s - %.3f second response time %s%s|time=%ldus size=%dB\n"), | 674 | die (onredirect, |
| 673 | status_line, elapsed_time, timestamp, | 675 | _(" - %s - %.3f second response time %s%s|%s size=%dB\n"), |
| 674 | (display_html ? "</A>" : ""), microsec, pagesize); | 676 | status_line, elapsed_time, timestamp, |
| 675 | die (onredirect, "%s", msg); | 677 | (display_html ? "</A>" : ""), |
| 678 | perfd_time (microsec), pagesize); | ||
| 676 | } /* end if (strstr (status_line, "30[0-4]") */ | 679 | } /* end if (strstr (status_line, "30[0-4]") */ |
| 677 | 680 | ||
| 678 | 681 | ||
| @@ -682,9 +685,11 @@ check_http (void) | |||
| 682 | /* check elapsed time */ | 685 | /* check elapsed time */ |
| 683 | microsec = deltime (tv); | 686 | microsec = deltime (tv); |
| 684 | elapsed_time = (double)microsec / 1.0e6; | 687 | elapsed_time = (double)microsec / 1.0e6; |
| 685 | asprintf (&msg, _("HTTP problem: %s - %.3f second response time %s%s|time=%ldus size=%dB\n"), | 688 | asprintf (&msg, |
| 686 | status_line, elapsed_time, timestamp, | 689 | _("HTTP problem: %s - %.3f second response time %s%s|%s size=%dB\n"), |
| 687 | (display_html ? "</A>" : ""), microsec, pagesize); | 690 | status_line, elapsed_time, timestamp, |
| 691 | (display_html ? "</A>" : ""), | ||
| 692 | perfd_time (microsec), pagesize); | ||
| 688 | if (check_critical_time == TRUE && elapsed_time > critical_time) | 693 | if (check_critical_time == TRUE && elapsed_time > critical_time) |
| 689 | die (STATE_CRITICAL, "%s", msg); | 694 | die (STATE_CRITICAL, "%s", msg); |
| 690 | if (check_warning_time == TRUE && elapsed_time > warning_time) | 695 | if (check_warning_time == TRUE && elapsed_time > warning_time) |
| @@ -695,14 +700,16 @@ check_http (void) | |||
| 695 | 700 | ||
| 696 | if (strlen (string_expect)) { | 701 | if (strlen (string_expect)) { |
| 697 | if (strstr (page, string_expect)) { | 702 | if (strstr (page, string_expect)) { |
| 698 | printf (_("HTTP OK %s - %.3f second response time %s%s|time=%ldus size=%dB\n"), | 703 | printf (_("HTTP OK %s - %.3f second response time %s%s|%s size=%dB\n"), |
| 699 | status_line, elapsed_time, | 704 | status_line, elapsed_time, |
| 700 | timestamp, (display_html ? "</A>" : ""), microsec, pagesize); | 705 | timestamp, (display_html ? "</A>" : ""), |
| 706 | perfd_time (microsec), pagesize); | ||
| 701 | exit (STATE_OK); | 707 | exit (STATE_OK); |
| 702 | } | 708 | } |
| 703 | else { | 709 | else { |
| 704 | printf (_("CRITICAL - string not found%s|time=%ldus\n size=%dB"), | 710 | printf (_("CRITICAL - string not found%s|%s size=%dB\n"), |
| 705 | (display_html ? "</A>" : ""), microsec, pagesize); | 711 | (display_html ? "</A>" : ""), |
| 712 | perfd_time (microsec), pagesize); | ||
| 706 | exit (STATE_CRITICAL); | 713 | exit (STATE_CRITICAL); |
| 707 | } | 714 | } |
| 708 | } | 715 | } |
| @@ -710,15 +717,17 @@ check_http (void) | |||
| 710 | if (strlen (regexp)) { | 717 | if (strlen (regexp)) { |
| 711 | errcode = regexec (&preg, page, REGS, pmatch, 0); | 718 | errcode = regexec (&preg, page, REGS, pmatch, 0); |
| 712 | if (errcode == 0) { | 719 | if (errcode == 0) { |
| 713 | printf (_("HTTP OK %s - %.3f second response time %s%s|time=%ldus size=%dB\n"), | 720 | printf (_("HTTP OK %s - %.3f second response time %s%s|%s size=%dB\n"), |
| 714 | status_line, elapsed_time, | 721 | status_line, elapsed_time, |
| 715 | timestamp, (display_html ? "</A>" : ""), microsec, pagesize); | 722 | timestamp, (display_html ? "</A>" : ""), |
| 723 | perfd_time (microsec), pagesize); | ||
| 716 | exit (STATE_OK); | 724 | exit (STATE_OK); |
| 717 | } | 725 | } |
| 718 | else { | 726 | else { |
| 719 | if (errcode == REG_NOMATCH) { | 727 | if (errcode == REG_NOMATCH) { |
| 720 | printf (_("CRITICAL - pattern not found%s|time=%ldus size=%dB\n"), | 728 | printf (_("CRITICAL - pattern not found%s|%s size=%dB\n"), |
| 721 | (display_html ? "</A>" : ""), microsec, pagesize); | 729 | (display_html ? "</A>" : ""), |
| 730 | perfd_time (microsec), pagesize); | ||
| 722 | exit (STATE_CRITICAL); | 731 | exit (STATE_CRITICAL); |
| 723 | } | 732 | } |
| 724 | else { | 733 | else { |
| @@ -738,9 +747,10 @@ check_http (void) | |||
| 738 | exit (STATE_WARNING); | 747 | exit (STATE_WARNING); |
| 739 | } | 748 | } |
| 740 | /* We only get here if all tests have been passed */ | 749 | /* We only get here if all tests have been passed */ |
| 741 | asprintf (&msg, _("HTTP OK %s - %.3f second response time %s%s|time=%ldus size=%dB\n"), | 750 | asprintf (&msg, _("HTTP OK %s - %.3f second response time %s%s|%s size=%dB\n"), |
| 742 | status_line, elapsed_time, | 751 | status_line, elapsed_time, |
| 743 | timestamp, (display_html ? "</A>" : ""), microsec, pagesize); | 752 | timestamp, (display_html ? "</A>" : ""), |
| 753 | perfd_time (microsec), pagesize); | ||
| 744 | die (STATE_OK, "%s", msg); | 754 | die (STATE_OK, "%s", msg); |
| 745 | return STATE_UNKNOWN; | 755 | return STATE_UNKNOWN; |
| 746 | } | 756 | } |
| @@ -760,7 +770,7 @@ check_http (void) | |||
| 760 | #define HD4 URI_HTTP URI_HOST | 770 | #define HD4 URI_HTTP URI_HOST |
| 761 | #define HD5 URI_PATH | 771 | #define HD5 URI_PATH |
| 762 | 772 | ||
| 763 | int | 773 | void |
| 764 | redir (char *pos, char *status_line) | 774 | redir (char *pos, char *status_line) |
| 765 | { | 775 | { |
| 766 | int i = 0; | 776 | int i = 0; |
| @@ -873,7 +883,7 @@ redir (char *pos, char *status_line) | |||
| 873 | free (server_url); | 883 | free (server_url); |
| 874 | server_url = strdup (url); | 884 | server_url = strdup (url); |
| 875 | 885 | ||
| 876 | return check_http (); | 886 | check_http (); |
| 877 | } | 887 | } |
| 878 | 888 | ||
| 879 | 889 | ||
| @@ -1027,6 +1037,14 @@ check_certificate (X509 ** certificate) | |||
| 1027 | 1037 | ||
| 1028 | 1038 | ||
| 1029 | 1039 | ||
| 1040 | char *perfd_time (long microsec) | ||
| 1041 | { | ||
| 1042 | perfdata ("time", microsec, "us", | ||
| 1043 | check_warning_time, (int)(1e6*warning_time), | ||
| 1044 | check_critical_time, (int)(1e6*critical_time), | ||
| 1045 | TRUE, 0, FALSE, 0); | ||
| 1046 | } | ||
| 1047 | |||
| 1030 | int | 1048 | int |
| 1031 | my_recv (void) | 1049 | my_recv (void) |
| 1032 | { | 1050 | { |
