diff options
-rwxr-xr-x | .github/prepare_debian.sh | 19 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | lib/utils_base.c | 8 | ||||
-rw-r--r-- | plugins-root/check_dhcp.c | 4 | ||||
-rwxr-xr-x | plugins-scripts/check_log.sh | 4 | ||||
-rwxr-xr-x | plugins-scripts/check_oracle.sh | 16 | ||||
-rwxr-xr-x | plugins-scripts/check_sensors.sh | 8 | ||||
-rw-r--r-- | plugins/check_curl.c | 5 | ||||
-rw-r--r-- | plugins/check_http.c | 1 | ||||
-rw-r--r-- | plugins/check_mysql.c | 2 | ||||
-rw-r--r-- | plugins/check_nt.c | 2 | ||||
-rw-r--r-- | plugins/check_pgsql.c | 12 | ||||
-rw-r--r-- | plugins/runcmd.c | 2 |
13 files changed, 48 insertions, 36 deletions
diff --git a/.github/prepare_debian.sh b/.github/prepare_debian.sh index 5222659..7f5592b 100755 --- a/.github/prepare_debian.sh +++ b/.github/prepare_debian.sh | |||
@@ -5,13 +5,18 @@ set -e | |||
5 | 5 | ||
6 | export DEBIAN_FRONTEND=noninteractive | 6 | export DEBIAN_FRONTEND=noninteractive |
7 | 7 | ||
8 | sed "s/main/non-free contrib/g" /etc/apt/sources.list.d/debian.sources > /etc/apt/sources.list.d/debian-nonfree.sources | 8 | source /etc/os-release |
9 | apt-get update | 9 | |
10 | apt-get -y install software-properties-common | 10 | if [ ${ID} = "debian" ]; then |
11 | if [ $(lsb_release -is) = "Debian" ]; then | 11 | if [ -f /etc/apt/sources.list.d/debian.sources ]; then |
12 | apt-add-repository non-free | 12 | sed "s/main/non-free contrib/g" /etc/apt/sources.list.d/debian.sources > /etc/apt/sources.list.d/debian-nonfree.sources |
13 | apt-get update | 13 | else |
14 | apt-get update | ||
15 | apt-get -y install software-properties-common | ||
16 | apt-add-repository non-free | ||
17 | fi | ||
14 | fi | 18 | fi |
19 | apt-get update | ||
15 | apt-get -y install perl \ | 20 | apt-get -y install perl \ |
16 | autotools-dev \ | 21 | autotools-dev \ |
17 | libdbi-dev \ | 22 | libdbi-dev \ |
@@ -83,7 +88,7 @@ cp tools/squid.conf /etc/squid/squid.conf | |||
83 | service squid start | 88 | service squid start |
84 | 89 | ||
85 | # mariadb | 90 | # mariadb |
86 | service mariadb start | 91 | service mariadb start || service mysql start |
87 | mysql -e "create database IF NOT EXISTS test;" -uroot | 92 | mysql -e "create database IF NOT EXISTS test;" -uroot |
88 | 93 | ||
89 | # ldap | 94 | # ldap |
@@ -246,6 +246,7 @@ NP-VERSION-FILE | |||
246 | /plugins-scripts/check_ircd | 246 | /plugins-scripts/check_ircd |
247 | /plugins-scripts/check_log | 247 | /plugins-scripts/check_log |
248 | /plugins-scripts/check_mailq | 248 | /plugins-scripts/check_mailq |
249 | /plugins-scripts/check_mssql | ||
249 | /plugins-scripts/check_ntp | 250 | /plugins-scripts/check_ntp |
250 | /plugins-scripts/check_oracle | 251 | /plugins-scripts/check_oracle |
251 | /plugins-scripts/check_rpc | 252 | /plugins-scripts/check_rpc |
diff --git a/lib/utils_base.c b/lib/utils_base.c index eb1823b..c458cf6 100644 --- a/lib/utils_base.c +++ b/lib/utils_base.c | |||
@@ -24,7 +24,7 @@ | |||
24 | * | 24 | * |
25 | *****************************************************************************/ | 25 | *****************************************************************************/ |
26 | 26 | ||
27 | #include "common.h" | 27 | #include "../plugins/common.h" |
28 | #include <stdarg.h> | 28 | #include <stdarg.h> |
29 | #include "utils_base.h" | 29 | #include "utils_base.h" |
30 | #include <ctype.h> | 30 | #include <ctype.h> |
@@ -319,18 +319,18 @@ char *np_extract_value(const char *varlist, const char *name, char sep) { | |||
319 | 319 | ||
320 | while (1) { | 320 | while (1) { |
321 | /* Strip any leading space */ | 321 | /* Strip any leading space */ |
322 | for (varlist; isspace(varlist[0]); varlist++); | 322 | for (; isspace(varlist[0]); varlist++); |
323 | 323 | ||
324 | if (strncmp(name, varlist, strlen(name)) == 0) { | 324 | if (strncmp(name, varlist, strlen(name)) == 0) { |
325 | varlist += strlen(name); | 325 | varlist += strlen(name); |
326 | /* strip trailing spaces */ | 326 | /* strip trailing spaces */ |
327 | for (varlist; isspace(varlist[0]); varlist++); | 327 | for (; isspace(varlist[0]); varlist++); |
328 | 328 | ||
329 | if (varlist[0] == '=') { | 329 | if (varlist[0] == '=') { |
330 | /* We matched the key, go past the = sign */ | 330 | /* We matched the key, go past the = sign */ |
331 | varlist++; | 331 | varlist++; |
332 | /* strip leading spaces */ | 332 | /* strip leading spaces */ |
333 | for (varlist; isspace(varlist[0]); varlist++); | 333 | for (; isspace(varlist[0]); varlist++); |
334 | 334 | ||
335 | if (tmp = index(varlist, sep)) { | 335 | if (tmp = index(varlist, sep)) { |
336 | /* Value is delimited by a comma */ | 336 | /* Value is delimited by a comma */ |
diff --git a/plugins-root/check_dhcp.c b/plugins-root/check_dhcp.c index ad67323..147db6b 100644 --- a/plugins-root/check_dhcp.c +++ b/plugins-root/check_dhcp.c | |||
@@ -470,10 +470,6 @@ int send_dhcp_discover(int sock){ | |||
470 | packet_xid=random(); | 470 | packet_xid=random(); |
471 | discover_packet.xid=htonl(packet_xid); | 471 | discover_packet.xid=htonl(packet_xid); |
472 | 472 | ||
473 | /**** WHAT THE HECK IS UP WITH THIS?!? IF I DON'T MAKE THIS CALL, ONLY ONE SERVER RESPONSE IS PROCESSED!!!! ****/ | ||
474 | /* downright bizzarre... */ | ||
475 | ntohl(discover_packet.xid); | ||
476 | |||
477 | /*discover_packet.secs=htons(65535);*/ | 473 | /*discover_packet.secs=htons(65535);*/ |
478 | discover_packet.secs=0xFF; | 474 | discover_packet.secs=0xFF; |
479 | 475 | ||
diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index c623a8d..8ecdd31 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh | |||
@@ -105,11 +105,11 @@ while test -n "$1"; do | |||
105 | case "$1" in | 105 | case "$1" in |
106 | -h | --help) | 106 | -h | --help) |
107 | print_help | 107 | print_help |
108 | exit "$STATE_OK" | 108 | exit "$STATE_UNKNOWN" |
109 | ;; | 109 | ;; |
110 | -V | --version) | 110 | -V | --version) |
111 | print_revision "$PROGNAME" "$REVISION" | 111 | print_revision "$PROGNAME" "$REVISION" |
112 | exit "$STATE_OK" | 112 | exit "$STATE_UNKNOWN" |
113 | ;; | 113 | ;; |
114 | -F | --filename) | 114 | -F | --filename) |
115 | logfile=$2 | 115 | logfile=$2 |
diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index b14ec50..5998138 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh | |||
@@ -86,20 +86,20 @@ esac | |||
86 | # Information options | 86 | # Information options |
87 | case "$cmd" in | 87 | case "$cmd" in |
88 | --help) | 88 | --help) |
89 | print_help | 89 | print_help |
90 | exit "$STATE_OK" | 90 | exit "$STATE_UNKNOWN" |
91 | ;; | 91 | ;; |
92 | -h) | 92 | -h) |
93 | print_help | 93 | print_help |
94 | exit "$STATE_OK" | 94 | exit "$STATE_UNKNOWN" |
95 | ;; | 95 | ;; |
96 | --version) | 96 | --version) |
97 | print_revision "$PROGNAME" "$REVISION" | 97 | print_revision "$PROGNAME" "$REVISION" |
98 | exit "$STATE_OK" | 98 | exit "$STATE_UNKNOWN" |
99 | ;; | 99 | ;; |
100 | -V) | 100 | -V) |
101 | print_revision "$PROGNAME" "$REVISION" | 101 | print_revision "$PROGNAME" "$REVISION" |
102 | exit "$STATE_OK" | 102 | exit "$STATE_UNKNOWN" |
103 | ;; | 103 | ;; |
104 | esac | 104 | esac |
105 | 105 | ||
diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh index 921e7b3..866e0e0 100755 --- a/plugins-scripts/check_sensors.sh +++ b/plugins-scripts/check_sensors.sh | |||
@@ -26,19 +26,19 @@ print_help() { | |||
26 | case "$1" in | 26 | case "$1" in |
27 | --help) | 27 | --help) |
28 | print_help | 28 | print_help |
29 | exit "$STATE_OK" | 29 | exit "$STATE_UNKNOWN" |
30 | ;; | 30 | ;; |
31 | -h) | 31 | -h) |
32 | print_help | 32 | print_help |
33 | exit "$STATE_OK" | 33 | exit "$STATE_UNKNOWN" |
34 | ;; | 34 | ;; |
35 | --version) | 35 | --version) |
36 | print_revision "$PROGNAME" "$REVISION" | 36 | print_revision "$PROGNAME" "$REVISION" |
37 | exit "$STATE_OK" | 37 | exit "$STATE_UNKNOWN" |
38 | ;; | 38 | ;; |
39 | -V) | 39 | -V) |
40 | print_revision "$PROGNAME" "$REVISION" | 40 | print_revision "$PROGNAME" "$REVISION" |
41 | exit "$STATE_OK" | 41 | exit "$STATE_UNKNOWN" |
42 | ;; | 42 | ;; |
43 | *) | 43 | *) |
44 | sensordata=$(sensors 2>&1) | 44 | sensordata=$(sensors 2>&1) |
diff --git a/plugins/check_curl.c b/plugins/check_curl.c index be5740d..100a97a 100644 --- a/plugins/check_curl.c +++ b/plugins/check_curl.c | |||
@@ -2217,11 +2217,10 @@ curlhelp_parse_statusline (const char *buf, curlhelp_statusline *status_line) | |||
2217 | if( strchr( p, '.' ) != NULL ) { | 2217 | if( strchr( p, '.' ) != NULL ) { |
2218 | 2218 | ||
2219 | /* HTTP 1.x case */ | 2219 | /* HTTP 1.x case */ |
2220 | char *ppp; | 2220 | strtok( p, "." ); |
2221 | ppp = strtok( p, "." ); | ||
2222 | status_line->http_major = (int)strtol( p, &pp, 10 ); | 2221 | status_line->http_major = (int)strtol( p, &pp, 10 ); |
2223 | if( *pp != '\0' ) { free( first_line_buf ); return -1; } | 2222 | if( *pp != '\0' ) { free( first_line_buf ); return -1; } |
2224 | ppp = strtok( NULL, " " ); | 2223 | strtok( NULL, " " ); |
2225 | status_line->http_minor = (int)strtol( p, &pp, 10 ); | 2224 | status_line->http_minor = (int)strtol( p, &pp, 10 ); |
2226 | if( *pp != '\0' ) { free( first_line_buf ); return -1; } | 2225 | if( *pp != '\0' ) { free( first_line_buf ); return -1; } |
2227 | p += 4; /* 1.x SP */ | 2226 | p += 4; /* 1.x SP */ |
diff --git a/plugins/check_http.c b/plugins/check_http.c index 8c03bc8..6956a72 100644 --- a/plugins/check_http.c +++ b/plugins/check_http.c | |||
@@ -1391,7 +1391,6 @@ char *unchunk_content(const char *content) { | |||
1391 | // https://en.wikipedia.org/wiki/Chunked_transfer_encoding | 1391 | // https://en.wikipedia.org/wiki/Chunked_transfer_encoding |
1392 | // https://www.rfc-editor.org/rfc/rfc7230#section-4.1 | 1392 | // https://www.rfc-editor.org/rfc/rfc7230#section-4.1 |
1393 | char *result = NULL; | 1393 | char *result = NULL; |
1394 | size_t content_length = strlen(content); | ||
1395 | char *start_of_chunk; | 1394 | char *start_of_chunk; |
1396 | char* end_of_chunk; | 1395 | char* end_of_chunk; |
1397 | long size_of_chunk; | 1396 | long size_of_chunk; |
diff --git a/plugins/check_mysql.c b/plugins/check_mysql.c index 0cba50e..6cfa70e 100644 --- a/plugins/check_mysql.c +++ b/plugins/check_mysql.c | |||
@@ -551,7 +551,7 @@ print_help (void) | |||
551 | printf (" %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds")); | 551 | printf (" %s\n", _("Exit with CRITICAL status if slave server is more then INTEGER seconds")); |
552 | printf (" %s\n", _("behind master")); | 552 | printf (" %s\n", _("behind master")); |
553 | printf (" %s\n", "-l, --ssl"); | 553 | printf (" %s\n", "-l, --ssl"); |
554 | printf (" %s\n", _("Use ssl encryptation")); | 554 | printf (" %s\n", _("Use ssl encryption")); |
555 | printf (" %s\n", "-C, --ca-cert=STRING"); | 555 | printf (" %s\n", "-C, --ca-cert=STRING"); |
556 | printf (" %s\n", _("Path to CA signing the cert")); | 556 | printf (" %s\n", _("Path to CA signing the cert")); |
557 | printf (" %s\n", "-a, --cert=STRING"); | 557 | printf (" %s\n", "-a, --cert=STRING"); |
diff --git a/plugins/check_nt.c b/plugins/check_nt.c index 59c135d..d73d83c 100644 --- a/plugins/check_nt.c +++ b/plugins/check_nt.c | |||
@@ -341,7 +341,7 @@ int main(int argc, char **argv){ | |||
341 | 341 | ||
342 | 2) If the counter you're going to measure is percent-based, the code will detect | 342 | 2) If the counter you're going to measure is percent-based, the code will detect |
343 | the percent sign in its name and will attribute minimum (0%) and maximum (100%) | 343 | the percent sign in its name and will attribute minimum (0%) and maximum (100%) |
344 | values automagically, as well the ¨%" sign to graph units. | 344 | values automagically, as well the "%" sign to graph units. |
345 | 345 | ||
346 | 3) OTOH, if the counter is "absolute", you'll have to provide the following | 346 | 3) OTOH, if the counter is "absolute", you'll have to provide the following |
347 | the counter unit - that is, the dimensions of the counter you're getting. Examples: | 347 | the counter unit - that is, the dimensions of the counter you're getting. Examples: |
diff --git a/plugins/check_pgsql.c b/plugins/check_pgsql.c index 94a03b2..6199033 100644 --- a/plugins/check_pgsql.c +++ b/plugins/check_pgsql.c | |||
@@ -517,7 +517,10 @@ print_help (void) | |||
517 | printf (" %s\n", _("connecting to the server. The result from the query has to be numeric.")); | 517 | printf (" %s\n", _("connecting to the server. The result from the query has to be numeric.")); |
518 | printf (" %s\n", _("Multiple SQL commands, separated by semicolon, are allowed but the result ")); | 518 | printf (" %s\n", _("Multiple SQL commands, separated by semicolon, are allowed but the result ")); |
519 | printf (" %s\n", _("of the last command is taken into account only. The value of the first")); | 519 | printf (" %s\n", _("of the last command is taken into account only. The value of the first")); |
520 | printf (" %s\n\n", _("column in the first row is used as the check result.")); | 520 | printf (" %s\n", _("column in the first row is used as the check result. If a second column is")); |
521 | printf (" %s\n", _("present in the result set, this is added to the plugin output with a")); | ||
522 | printf (" %s\n", _("prefix of \"Extra Info:\". This information can be displayed in the system")); | ||
523 | printf (" %s\n\n", _("executing the plugin.")); | ||
521 | 524 | ||
522 | printf (" %s\n", _("See the chapter \"Monitoring Database Activity\" of the PostgreSQL manual")); | 525 | printf (" %s\n", _("See the chapter \"Monitoring Database Activity\" of the PostgreSQL manual")); |
523 | printf (" %s\n\n", _("for details about how to access internal statistics of the database server.")); | 526 | printf (" %s\n\n", _("for details about how to access internal statistics of the database server.")); |
@@ -557,6 +560,7 @@ do_query (PGconn *conn, char *query) | |||
557 | PGresult *res; | 560 | PGresult *res; |
558 | 561 | ||
559 | char *val_str; | 562 | char *val_str; |
563 | char *extra_info; | ||
560 | double value; | 564 | double value; |
561 | 565 | ||
562 | char *endptr = NULL; | 566 | char *endptr = NULL; |
@@ -621,6 +625,12 @@ do_query (PGconn *conn, char *query) | |||
621 | printf ("|query=%f;%s;%s;;\n", value, | 625 | printf ("|query=%f;%s;%s;;\n", value, |
622 | query_warning ? query_warning : "", | 626 | query_warning ? query_warning : "", |
623 | query_critical ? query_critical : ""); | 627 | query_critical ? query_critical : ""); |
628 | if (PQnfields (res) > 1) { | ||
629 | extra_info = PQgetvalue (res, 0, 1); | ||
630 | if (extra_info != NULL) { | ||
631 | printf ("Extra Info: %s\n", extra_info); | ||
632 | } | ||
633 | } | ||
624 | return my_status; | 634 | return my_status; |
625 | } | 635 | } |
626 | 636 | ||
diff --git a/plugins/runcmd.c b/plugins/runcmd.c index 1bd2ca1..c1d675d 100644 --- a/plugins/runcmd.c +++ b/plugins/runcmd.c | |||
@@ -44,6 +44,8 @@ | |||
44 | # include <sys/wait.h> | 44 | # include <sys/wait.h> |
45 | #endif | 45 | #endif |
46 | 46 | ||
47 | #include "./utils.h" | ||
48 | |||
47 | /** macros **/ | 49 | /** macros **/ |
48 | #ifndef WEXITSTATUS | 50 | #ifndef WEXITSTATUS |
49 | # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) | 51 | # define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) |