summaryrefslogtreecommitdiffstats
path: root/plugins/t/check_curl.t
AgeCommit message (Collapse)AuthorFilesLines
30 hoursadd proxy argument and improve dns cache usage (#2209)inqrphl1-1/+114
* add proxy argument and improve dns cache usage add proxy argument that useing the -x and --proxy argument. add it to the static curl config struct, command usage and help outputs of the cli. parse these argument together with the environment variables like http_proxy before setting the CURLOPT_PROXY in the curl configuration option. this is required, as there is no easy way to ascertain/get what the CURLOPT_PROXY that libcurl will use. by the point it is set by libcurl, we have no control over it anymore, and need it for the other steps in the configuration. if the CURLOPT_PROXY is set, skip the DNS cache population which would set the CURLOPT_RESOLVE. this is currently not perfect however. if a proxy is set with socks4 or socks5 scheme, the host should be resolving the hostname. * codespell, clang-format and hints fixes * add curl version and ssl enabelement macro checks might fix rocky linux 8 compilation issues. * add proxy_resolves_hostname, determined by proxy scheme leave the functions that print out an curl_easyoption, but dont use it. organize the code slightly, print out the final CURLOPT_PROXY and proxy_resolves_hostname flag on verbose mode, add comments * remove unused handle_curl_easyoption and format_curl_easyoption functions * fix typo in the proxy argument * fix typo with proxy scheme socks5a->socks5h * improve proxy environment parsing add another argument: --no-proxy , which is used when setting CURL_NOPROXY additionally parse all_proxy, ALL_PROXY, no_proxy and NO_PROXY environment variables in the correct order. set the curlopt_proxy and curlopt_noproxy of libcurl, and additionally save them in check_curl_working_state. add function determine_hostname_resolver, uses the working state and static config. it can tokenize the no_proxy variable and check for exact matches, but cannot determine subnet matches for ip addresses yet. * document proxy cli arguments clarify and add more examples of proxy environment variables and their behavior when multiple are specified, overriden etc. add single wildcard '*' checking for no_proxy to determine_hostname_resolver, special case per curlopt_noproxy documentation * check curlopt_noproxy before accessing it * switch argument from --no-proxy to --noproxy like curl cli * check if host name is a subdomain of an noproxy item * use strdup where destination working_state.curlopt_proxy may be NULL * add disclaimer about uppercase HTTP_PROXY * add subdomain checks for each item in the no_proxy, if the target host is a subdomain proxy wont resolve it add function ip_addr_inside_cidr, use it for checking possible cidr ranges given in the no_proxy * wip tests that work on local perl http/https server * wip tests that work on the live debian image * fix subnet definition * make apache2 listen on [::1] for ipv6 tests * remove squid certificate * rewrite ip_addr_inside_cidr, split ipv4 and ipv6 parsing path and copy them to a shared buffer later on for prefix check * Adapt tests for the squid sever, disable checking return code for socks 4/5 proxies. Squid does not support it, and we do not install a capable proxy for these schemes. * specify localhost acl and allow it through the proxy. used in check_curl tests * typo in comment * move function comments to header * fix failing tests * handle case where proxy is set as empty string * removed duplicate tests, corrected wrong comments * corrected some annotations * move docker apache subdomain setup files to /tools/subdomain1 * add a newline before dying in handle_curl_option_return_code * fix the -ssl better, now does not segfault on empty --ssl argument as well. --------- Co-authored-by: Ahmet Oeztuerk <Ahmet.Oeztuerk@consol.de>
2025-09-15fix number of testsLorenz Kästle1-1/+1
2025-09-15Adapt test to new error messageLorenz Kästle1-1/+1
2025-09-15Fix typosLorenz Kästle1-4/+4
2025-09-15Fix/adapt testsLorenz Kästle1-16/+27
2025-09-13check_curl: test adaption and output adaptionLorenz Kästle1-2/+2
2024-07-23check_http: replace www.mozilla.com with monitoring-plugins.orgSven Nierlein1-2/+2
this makes tests more reliable if we test our own sites instead some 3rd party site. Signed-off-by: Sven Nierlein <sven@consol.de>
2022-11-07Check curl detect ipv6 (#1809)Lorenz1-11/+28
* 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-07-20Remove check_http and check_curl test which are somehow always failing (#1777)Lorenz1-6/+1
* Remove failing checks for check_http * Remove failing checks for check_curl
2021-05-24check_curl.c: bugfix: verify certificates option should not force SSL to be usedBarak Shohat1-1/+1
2021-05-18check_curl.t: Adjust test to use -f curlJacob Hansen1-2/+1
It appears that `-f follow` doesn't work correctly in `check_curl` at the moment. Test adjusted to use `-f curl` instead. Issue for the above created: https://github.com/monitoring-plugins/monitoring-plugins/issues/1685 Signed-off-by: Jacob Hansen <jhansen@op5.com>
2021-04-30Fix conditional tests for check_http, check_curlAksel Sjögren1-2/+2
Set correct number of tests in skip- blocks to avoid the error "Bad plan. You planned 50 tests but ran 55" when run with/without /usr/bin/faketime and NP_INTERNET_ACCESS=yes/no.
2021-04-07Merge pull request #1669 from bazzisoft/verify-certSven Nierlein1-1/+4
Add an option to check_curl to verify the peer certificate & host using the system CA's
2021-04-07Add an option to check_curl to verify the peer certificate & host using the ↵Barak Shohat1-1/+4
system CA's
2021-04-07Updated check_curl.c to display a specific human-readable error message ↵Barak Shohat1-2/+2
where possible
2020-05-18update test parameter according to check_httpSven Nierlein1-26/+9
2018-10-25check_curl: rewrite connect_to / host headersSven Nierlein1-1/+13
since CURLOPT_CONNECT_TO is only available in later curl versions, we do it the other way round now and set the url from the address we want to connect to and then set the host header accordingly.
2018-10-22made check_curl tests copies of check_http tests because they will differ ↵Andreas Baumann1-1/+204
slightly
2018-10-22check_curl: make check_curl use the same tests as check_httpSven Nierlein1-200/+1
2018-10-22add check_curl testSven Nierlein1-0/+200
just a copy of check_http for now... Signed-off-by: Sven Nierlein <sven@nierlein.de>