summaryrefslogtreecommitdiffstats
path: root/plugins/check_curl.c
AgeCommit message (Collapse)AuthorFilesLines
2025-09-15Fix typo in error messageLorenz Kästle1-1/+1
2025-09-15Add new cert check functionLorenz Kästle1-1/+2
2025-09-15check_curl: fix perfdata labelLorenz Kästle1-1/+1
2025-09-15check_curl: finish after cert without continue paramLorenz Kästle1-1/+1
2025-09-15Fix regex matchingLorenz Kästle1-5/+11
2025-09-15Improve error messageLorenz Kästle1-3/+2
2025-09-13check_curl: test adaption and output adaptionLorenz Kästle1-17/+22
2025-09-13check_curl: remove display-html optionLorenz Kästle1-24/+11
2025-09-12check_curl: implement new output mechanismLorenz Kästle1-282/+280
2025-09-12Fix struct accessLorenz Kästle1-1/+1
2025-09-12check_curl: create outsourced helpers in extra filesLorenz Kästle1-1261/+51
2025-09-11check_curl: http3 is only available with libcurl 7.66 or laterLorenz Kästle1-1/+4
2025-09-11check_curl: refactoring to modularize codeLorenz Kästle1-506/+549
2025-09-11check_curl: improve option handling a bitLorenz Kästle1-5/+5
2025-09-11check_curl: fix function signatureLorenz Kästle1-1/+2
2025-09-11check_curl: less global stateLorenz Kästle1-31/+41
2025-09-10check_curl: remove the other gotosLorenz Kästle1-5/+16
2025-09-10check_curl: remove goto logicLorenz Kästle1-122/+138
2025-09-10check_curl: pre compile regex for string matchingLorenz Kästle1-3/+4
2025-09-10check_curl: remove another global variableLorenz Kästle1-4/+2
2025-09-09check_curl: more refactoringLorenz Kästle1-350/+437
2025-08-01Quick saveLorenz Kästle1-25/+26
2025-07-14check_curl: various small improvementsLorenz Kästle1-66/+68
2025-07-06check_curl: clang-formatLorenz Kästle1-276/+495
2025-03-11Refactor check_curlLorenz Kästle1-529/+464
2025-03-10check_curl: clang-formatLorenz Kästle1-158/+271
2024-12-02check_curl: enable internal cookie handlingAndre Klärner1-1/+7
This enables us to enable curl cookie engine by specifying an empty filename as the cookie jar file. This works, since curl's CURLOPT_COOKIEFILE option allows passing an empty string as filename, which it interprets as a request to enable the cookie processing. But since CURLOPT_COOKIEJAR would now attempt to write to a file named by an empty filename, it would break again (or at least produce a warning in verbose output). Overall this is allows to handle checking URLs with cookie based sessions without persisting the cookies to disk, by using the curl-internal redirect following.
2024-11-27check_curl: update TLS notification notesLorenz Kästle1-1/+1
2024-11-09Fix false formatting directive in printfLorenz Kästle1-1/+1
2024-10-31check_curl: Linter fixesRincewindsHat1-27/+28
2024-10-31check_curl: do not export local variables and remove unused onesRincewindsHat1-129/+118
2024-10-31check_curl: Update copyrightRincewindsHat1-2/+2
2024-10-31check_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_stateLorenz Kästle1-2/+0
2024-08-29Remove experimental state from check_curlLorenz 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-jarAlvar 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 optionEmmanuel 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 variablesRincewindsHat1-2/+12
2023-10-15Whitespace fixesRincewindsHat1-4/+4