Commit graph

1948 commits

Author SHA1 Message Date
Sven Nierlein
c256af44fb check_http/check_curl: add chunked encoding test 2023-01-07 18:34:46 +01:00
RincewindsHat
6ed7a75c3b Reformat a part to increase readability 2023-01-07 18:34:46 +01:00
RincewindsHat
67d1062530 Undo clang formatting 2023-01-07 18:34:46 +01:00
RincewindsHat
029168276f Fix several bug in the implementation of unchunking 2023-01-07 18:34:46 +01:00
RincewindsHat
3e63e61f6a Fix chunked header detection regex 2023-01-07 18:34:46 +01:00
RincewindsHat
1ac8f35301 Fix type of unchunk_content function declaration 2023-01-07 18:34:46 +01:00
RincewindsHat
48d6ef2557 Undo sorting of header file includes, it breaks the build 2023-01-07 18:34:46 +01:00
RincewindsHat
afe92468a5 Implement chunked encoding decoding 2023-01-07 18:34:46 +01:00
RincewindsHat
2c658383d5 Restructure code a bit to put things where they are actually needed 2023-01-07 18:34:46 +01:00
RincewindsHat
d4502f246f Remove legacy comments and add some new ones 2023-01-07 18:34:46 +01:00
RincewindsHat
c0c096d2ef Remove dead code 2023-01-07 18:34:46 +01:00
RincewindsHat
2315f59835 clang format 2023-01-07 18:34:46 +01:00
RincewindsHat
d2a05e0d12 Document process_arguments a little bit better 2023-01-07 18:34:46 +01:00
RincewindsHat
2752f91099 Update copyright 2023-01-07 18:34:46 +01:00
RincewindsHat
698eed58f8 Use real booleans instead of ints 2023-01-07 18:34:46 +01:00
Sven Nierlein
9ba8f5ed66 check_snmp: always apply format when applying multiplier 2022-12-22 12:54:51 +01:00
Robert Bohne
def946bd97 Improve tests for check_snmp & multiply option 2022-12-22 12:54:51 +01:00
Wolfgang Nieder
c35bf8966a add 'multiplier' to modify current value 2022-12-22 12:54:51 +01:00
Sven Nierlein
765b29f09b
check_curl: fix checking large bodys (#1823)
check_curl fails on large pages:

  HTTP CRITICAL - Invalid HTTP response received from host on port 5080: cURL returned 23 - Failure writing output to destination

for example trying to run check_curl on the test from #1822

I guess the idea is to double the buffer size each time it is to small. But the code
exponentially grows the buffer size which works well 2-3 times, but then fails.
2022-12-22 12:51:18 +01:00
Danijel Tasov
763862a61c make check_http faster with larger files
The current implementation becomes exponentially slower with growing
response size.

See also:

https://github.com/nagios-plugins/nagios-plugins/blob/release-2.4.2/plugins/check_http.c#L1199-L1204

Test:

    $ mkdir web
    $ nohup python3 -m http.server -d web 5080 &
    $ perl -E 'say "0123456789" for (1..2_000_000)' >| web/file.txt
    $ ./check_http.orig  -t 200 -v  -I localhost -p 5080 -u /file.txt > test1.txt
    real    0m26.893s
    user    0m12.661s
    sys     0m14.221s
    $ time ./check_http -t 200 -v  -I localhost -p 5080 -u /file.txt > test2.txt
    real    0m0.038s
    user    0m0.011s
    sys     0m0.027s
    $ diff -u test[12].txt
    --- test1.txt   2022-12-21 14:58:28.720260811 +0100
    +++ test2.txt   2022-12-21 14:58:42.640008604 +0100
    @@ -7,7 +7,7 @@
     STATUS: HTTP/1.0 200 OK
     **** HEADER ****
     Server: SimpleHTTP/0.6 Python/3.9.2
    -Date: Wed, 21 Dec 2022 13:58:01 GMT
    +Date: Wed, 21 Dec 2022 13:58:42 GMT
     Content-type: text/plain
     Content-Length: 22000000
     Last-Modified: Wed, 21 Dec 2022 13:57:58 GMT
    @@ -2000013,4 +2000013,4 @@
     0123456789
     0123456789

    -HTTP OK: HTTP/1.0 200 OK - 22000191 bytes in 26.860 second response time |time=26.860182s;;;0.000000;200.000000 size=22000191B;;;0;
    +HTTP OK: HTTP/1.0 200 OK - 22000191 bytes in 0.016 second response time |time=0.016412s;;;0.000000;200.000000 size=22000191B;;;0;
2022-12-22 10:15:59 +01:00
RincewindsHat
0551151a57 Remove trailing whitespaces 2022-12-20 10:19:10 +01:00
RincewindsHat
28553e8d1c Fix unknown escape sequence error output 2022-12-20 10:19:10 +01:00
Aksel Sjögren
a517c62c1b check_http: fix test plan
Fix test plan when run with NP_INTERNET_ACCESS=no, where the correct
number of steps must be skipped.
Caused by a removed test in 65fc706429.

Signed-off-by: Aksel Sjögren <asjogren@itrsgroup.com>
2022-11-29 16:38:33 +01:00
Lorenz
4a5ddd2011
Check curl detect ipv6 (#1809)
* If server_address is an IPv6 address surround it with brackets

* If the message is too short, we should not have an underflow

* Add simple conditional test case available if IPv6 is
2022-11-07 17:48:28 +01:00
Lorenz
edc84e5d66
Remove superflous CRLF in HTTP-Requests in check_http (#1798)
* Remove superflous CRLF in HTTP-Requests in check_http
2022-11-05 13:59:45 +01:00
waja
2d9c6276d0
Removing is_pg_dbname alltogether,using postgres API. (Closes: #1660) (#1803)
The problem is that check_pgsql validates the Database name and has different assumptions
that postgres itself.

I fail to see a reason to validate the database name here. Postgres'es API should
do this - So i would suggest a fix like this by removing is_pg_dbname alltogether.

Co-authored-by: Florian Lohoff <f@zz.de>
2022-11-04 19:16:01 +01:00
Andreas Baumann
eb2dfdd5c2
fixed two PRId64 to PRIu64 in perfdata_uint64 (#1802) 2022-10-27 22:48:18 +02:00
Andreas Baumann
817ac2e5da
using PRId64 and PRIu64 instead of %ld directly (#1800) 2022-10-21 18:31:12 +02:00
Lorenz
b90a5757f7
Display total and scaled load values if check_load scales the values by number of CPUs (#1778)
* Renew copyright

* Display more verbose output, if scaled load values are used

* Actually use scaled value for determining status and print the fitting perfdata depending on input parameters

* Add test cases for scaled mode
2022-09-19 10:23:49 +02:00
Jan Wagner
8087291729 check_http: Fix HD6 definition 2022-09-18 20:42:26 +02:00
John C. Frickson
e2e405596a I had to make a couple of small changes. 2022-09-18 20:42:26 +02:00
Eric Wunderlin
d57d2b0bdd Remove unused code 2022-09-18 20:42:26 +02:00
Eric Wunderlin
8f54442c68 Added ability to correctly check redirects with reference format //test.server.com/folder
Referenced redirect of the format //www.server.com/folder would result
in check_http trying to contact http://hostname:80//www.server.com/folder
instead of http://www.server.com/folder. Referenced redirect of this format
is listed in rfc3986 ( https://tools.ietf.org/html/rfc3986 ). It should
work as expected now.
2022-09-18 20:42:26 +02:00
Lorenz
b89aee5696
Check ntp remove unused variables (#1781)
* Remove unused argument

* Fix typo in comment
2022-09-14 10:54:46 +02:00
Lorenz
ef57962552
Check disk compiler warnings (#1758)
* Use unused variable

* Proper format strings for printf

* Use proper functions for absolute values

* Remove and add comments at some places
2022-09-11 06:29:58 +02:00
Lorenz
a9cdbc8959
Check load compiler warnings (#1759)
* Fix compiler warnings due to implizit conversion and formats

* Make includes more specific and complement them

* Formatting fixes
2022-09-11 06:29:36 +02:00
Lorenz
fbbc9fcbd5
Check swap compiler warnings (#1756)
* Fix compiler warnings

* Fix superfluous whitespaces
2022-09-11 06:29:17 +02:00
Lorenz
3ad5fe9d84
check_swap: Fix unit for total in perfdata (#1779)
* check_swap: Fix unit for total in perfdata

* Remove trailing whitespaces
2022-07-25 10:11:43 +02:00
Sven Nierlein
a01de7b33d
fix parsing swap values (#1780)
tmp_KB changed from float to uint64, so change the sscanf format accordingly.
2022-07-25 10:00:18 +02:00
adrb
9f2a9ca3d7
check_snmp: Segfault if number of processed lines is greater than number of thresholds
Segfault at line 489 if number of processed lines is greater than number (#1589) of thresholds

Co-authored-by: Lorenz <12514511+RincewindsHat@users.noreply.github.com>
2022-07-24 16:44:16 +02:00
Lorenz
65fc706429
Remove check_http and check_curl test which are somehow always failing (#1777)
* Remove failing checks for check_http
* Remove failing checks for check_curl
2022-07-20 13:33:49 +02:00
Archie L. Cobbs
ccf4ed25f9
check_by_ssh: Add "-U" flag (#1123). (#1774)
This causes a 255 exit value from ssh(1), which indicates a connection failure,
to return UNKNOWN instead of CRITICAL; similar to check_nrpe's "-u" flag.
2022-07-14 08:47:54 +02:00
Andreas Baumann
a96bdd7349 check_curl: added option --continue-after-certificate (#1761) 2022-04-10 16:31:53 +02:00
Andreas Baumann
455fdc1072 check_http: added option --continue-after-certificate (#1761) 2022-04-10 16:31:47 +02:00
Lorenz
d485b64ef0
Description for -M was the wrong way around (#1746)
Using -M should show the mountpoint instead of the device the
file system originated from.
Seems like this was not the case for a long time and now
the default is to show the mount point. Using `-M` reverts
to showing the (block) device instead.
The usage Description was adjusted with this commit.
2022-01-30 19:41:36 +01:00
Lorenz
e781e0d101
Fix double percentage sign in usage (#1743) 2022-01-30 12:44:02 +01:00
Tobias Wiese
31bdbfce92 sslutils: use chain from client certificates
sslutils used to load only the first certificate when it was given a
client certificate file.

Added tests for check_http to connect to a http server that expects a
client certificate (simple and with chain).

Signed-off-by: Tobias Wiese <tobias@tobiaswiese.com>
2022-01-30 12:25:56 +01:00
Andreas Baumann
ee2a60fc4e fixed -ffollow for HTTP/2.0 (Fixes #1685): added major_version parsing to PicoHTTPParser 2022-01-29 12:17:37 +01:00
Andreas Baumann
737412f739 check_http and check_curl: added --max-redirs=N option (feature #1684) 2022-01-29 12:15:12 +01:00
datamuc
e2397167c7
add --queryname parameter to check_pgsql (#1741)
This is used in the long output instead of the actual query.
So instead of

    OK - 'select stuff from various, tables where some_stuff is null and other_stuff is not null' returned 42

one can use --queryname=check_greatest_basket and it will print

OK - check_greatest_basket returned 42

That's nicer for alerting purposes, at least in our use case.
2022-01-25 10:57:02 +01:00