summaryrefslogtreecommitdiffstats
path: root/plugins/check_curl.c
AgeCommit message (Collapse)AuthorFilesLines
45 hourscheck_curl: Linter fixesRincewindsHat1-27/+28
45 hourscheck_curl: do not export local variables and remove unused onesRincewindsHat1-129/+118
46 hourscheck_curl: Update copyrightRincewindsHat1-2/+2
46 hourscheck_curl: clang-formatRincewindsHat1-2260/+2156
2024-10-10fix check_curl: OpenSSL SSL_read: error:0A000126:SSL routines::unexpected ↵Sven Nierlein1-7/+22
eof while reading, errno 0 using check_curl on a probably embedded device responding as 'Server: GoAhead-Webs' %> check_curl -H ... -S -vvv > GET / HTTP/1.1 Host: ... User-Agent: check_curl/v2.4.0 (monitoring-plugins 2.4.0, libcurl/7.76.1 OpenSSL/3.0.7 zlib/1.2.11 brotli/1.0.9 libidn2/2.3.0 libpsl/0.21.1 (+libidn2/2.3.0) libssh/0.10.4/openssl/zlib nghttp2/1.43.0) Accept: */* Connection: close * Mark bundle as not supporting multiuse * HTTP 1.0, assume close after body < HTTP/1.0 302 Redirect < Server: GoAhead-Webs < Date: Tue Mar 26 17:57:16 2019 < Cache-Control: no-cache, no-store, must-revalidate,private < Pragma: no-cache < Expires: 0 < Content-Type: text/html < X-Frame-Options: sameorigin < X-XSS-Protection: 1; mode=block < X-Content-Type-Options: nosniff < Location: https://... < * OpenSSL SSL_read: error:0A000126:SSL routines::unexpected eof while reading, errno 0 * Closing connection 0 reading the discussion on https://github.com/openssl/openssl/discussions/22690 suggest to set the option SSL_OP_IGNORE_UNEXPECTED_EOF which makes check_curl behave like check_http at this point. Since this is a rather new flag, fencing it in ifdefs. And since there can only be one ssl ctx function, we need to move both tasks into one function.
2024-10-06Merge branch 'master' into check_curl_regex_staterefs/pull/2014/headLorenz Kästle1-2/+0
2024-08-29Remove experimental state from check_curlrefs/pull/2017/headLorenz Kästle1-2/+0
2024-08-19check_curl: change help for --state-regex again to fix formattingRincewindsHat1-1/+1
2024-08-19check_curl: Parse state-regex option ignoring caseRincewindsHat1-2/+2
Previously the --state-regex option accepted only "critical" and "warning" as values. This commit changes the strcmp there to strcasecmp to be more tolerant regarding the input.
2024-08-19check_curl: Fix help for state regex optionRincewindsHat1-2/+2
The help output of `check-curl` contained a typo, the real option is `state-regex` and not `regex-state` as the help suggests. Also added the two possible options to avoid confusion.
2024-08-16check_curl: Documentation for --certificate, --cookie-jarrefs/pull/2012/headAlvar Penning1-3/+6
From the mere help output for -C / --certificate, I was confused about what its two integer parameters do. Unfortunately, I also missed out on the explaining examples later. Since I like to have basic documentation for each flag, I tried to make the arguments as short as possible. The other fix was one hyphen too many for the --cookie-jar option.
2024-08-11check_curl: raise SSL issue when --continue-after-certificate is usedYannick Martin1-8/+9
This change aims to raise the worst status between the SSL check and the HTTP check. before: check_curl -H www.google.fr -S --continue-after-certificate --certificate 4000,4000 ; echo $? CRITICAL - Certificate '*.google.fr' expires in 74 day(s) (Tue 22 Oct 2024 12:53:52 PM GMT +0000). HTTP OK: HTTP/2 200 - 22807 bytes in 0.076 second response time |time=0.075516s;;;0.000000;10.000000 size=22807B;;;0; 0 after: /usr/lib/nagios/ovh/check_curl -H www.google.fr -S --continue-after-certificate --certificate 4000,4000 ; echo $? CRITICAL - Certificate '*.google.fr' expires in 74 day(s) (Tue 22 Oct 2024 12:53:52 PM GMT +0000). HTTP OK: HTTP/2 200 - 22840 bytes in 0.090 second response time |time=0.090463s;;;0.000000;10.000000 size=22840B;;;0; 2
2024-07-30check_curl: fix relative redirects on non-standard portSven Nierlein1-5/+10
Having a webserver respond with a relative redirect as for ex. in `Location: /path/to.html` check_curl would use the wrong standard http/https port instead of crafting the absolute url using the given scheme/hostname and port. Adding a new test case for this for check_http and check_curl. check_http did it correct already, so no fix necessary there. before: %>./check_curl -H 127.0.0.1 -p 50493 -f follow -u /redirect_rel -s redirected -vvv **** HEADER **** HTTP/1.1 302 Found ... Location: /redirect2 ... * Seen redirect location /redirect2 ** scheme: (null) ** host: (null) ** port: (null) ** path: /redirect2 Redirection to http://127.0.0.1:80/redirect2 fixed: %>./check_curl -H 127.0.0.1 -p 50493 -f follow -u /redirect_rel -s redirected -vvv **** HEADER **** HTTP/1.1 302 Found ... Location: /redirect2 ... * Seen redirect location /redirect2 ** scheme: (null) ** host: (null) ** port: (null) ** path: /redirect2 Redirection to http://127.0.0.1:50493/redirect2 Signed-off-by: Sven Nierlein <sven@nierlein.de>
2024-04-07check_http/check_curl: added a --regex-state option to change the state of a ↵Andreas Baumann1-3/+16
regex check from the default CRITICAL to something else (#1213)
2024-04-07check_curl/check_http: clarified format of POST data (#1978)Andreas Baumann1-1/+1
2024-02-01check_curl: add haproxy protocol optionrefs/pull/1985/headEmmanuel Riviere1-2/+15
2023-11-22Merge pull request #1951 from RincewindsHat/compiler_warnings_maybe_unusedLorenz Kästle1-1/+1
Fix compiler warning for uninitialized variable
2023-10-19Fixes for -Wsign-compareRincewindsHat1-7/+6
2023-10-19check_curl: Initialize pointer before usageRincewindsHat1-1/+1
2023-10-15fix compiler warnings for unused variablesrefs/pull/1938/headRincewindsHat1-2/+12
2023-10-15Whitespace fixesrefs/pull/1936/headRincewindsHat1-4/+4
2023-10-15Fix -Wcast-function-type compiler warningsRincewindsHat1-6/+4
2023-06-28Merge branch 'master' into compiler_warning_part_2refs/pull/1867/headwaja1-3/+2
2023-04-26Avoid unnecessary malloc and use stack insteadLorenz Kästle1-6/+1
2023-04-17Fixes for -WrestrictRincewindsHat1-67/+184
2023-04-17Fixes for -Wunused-parametersRincewindsHat1-3/+6
2023-04-17Fixes for -Wimplicit-fallthroughRincewindsHat1-0/+1
2023-04-17Fixes for -Wunusedrefs/pull/1866/headRincewindsHat1-3/+2
* lib/utils_base.c * plugins/check_curl.c * plugins-root/check_dhcp.c Removed a line which theoretically can not do anything, but there was comment which indicated something else. Still trying this though.
2023-04-14Fix a lot of typos reported by codespellrefs/pull/1864/headJan Wagner1-3/+3
2023-03-16check_curk: including netinet/in.h (for FreeBSD), fixed an ambigous compare ↵refs/pull/1855/headAndreas Baumann1-1/+2
warning
2023-03-11check_curl: removed a superflous variablerefs/pull/1847/headAndreas Baumann1-1/+0
2023-03-08fixed a wrong compare and a wrong size in strncatrefs/pull/1846/headAndreas Baumann1-2/+2
2023-03-08check_curl.c: Include all IPs from getaddrinfo() in curl DNS cacheBarak Shohat1-13/+26
2023-03-07check_curl: in SSL host caching mode try to connect and bind and take the ↵Andreas Baumann1-7/+15
first getaddrinfo result which succeeds
2023-02-17using real boolean in check_curlrefs/pull/1843/headAndreas Baumann1-78/+82
2023-02-12changed #else/#if to #elif in libcurl library checksAndreas Baumann1-4/+2
2023-02-12fixed double frees when doing old-style redirectsAndreas Baumann1-4/+14
2023-02-12better cleanup of curl structures and buffersAndreas Baumann1-11/+20
2023-02-11added --cookie-jar and doing proper cleanup of libcurlAndreas Baumann1-13/+34
2023-02-11fixed regerror is MAX_INPUT_BUFFER writting into too small errbufAndreas Baumann1-1/+1
2023-02-05using CURLOPT_REDIR_PROTOCOLS_STR instead of CURLOPT_REDIR_PROTOCOLS for ↵Andreas Baumann1-0/+4
curl >= 7.85.0
2023-01-17Fixing spelling errors (#1826)waja1-1/+1
2022-12-22check_curl: fix checking large bodys (#1823)Sven Nierlein1-2/+5
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-11-07Check curl detect ipv6 (#1809)Lorenz1-4/+18
* 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-04-10check_curl: added option --continue-after-certificate (#1761)refs/pull/1762/headAndreas Baumann1-4/+22
2022-01-29fixed -ffollow for HTTP/2.0 (Fixes #1685): added major_version parsing to ↵Andreas Baumann1-3/+3
PicoHTTPParser
2022-01-29check_http and check_curl: added --max-redirs=N option (feature #1684)Andreas Baumann1-2/+14
2021-11-17Merge pull request #1688 from bazzisoft/masterRincewindsHat1-1/+1
check_curl.c: bugfix: verify certificates option should not force SSL to be used
2021-07-25check_curl: fixed a potential buffer overflow in retir/uri_stringAndreas Baumann1-2/+2
2021-07-25check_curl: fixed DNS caching for SSL hostnames (avoid CURLOPT_RESOLVE entry ↵Andreas Baumann1-3/+51
errors)