<feed xmlns='http://www.w3.org/2005/Atom'>
<title>monitoring-plugins/plugins, branch master</title>
<subtitle>Monitoring Plugins
</subtitle>
<id>https://www.monitoring-plugins.org/repositories/monitoring-plugins/atom?h=master</id>
<link rel='self' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/'/>
<updated>2026-03-27T00:25:18Z</updated>
<entry>
<title>Handle rc_send_server in libfreeradius (#2246)</title>
<updated>2026-03-27T00:25:18Z</updated>
<author>
<name>Lorenz Kästle</name>
<email>12514511+RincewindsHat@users.noreply.github.com</email>
</author>
<published>2026-03-27T00:25:18Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=a71ce153082565e5728424749475593dc0623492'/>
<id>urn:sha1:a71ce153082565e5728424749475593dc0623492</id>
<content type='text'>
</content>
</entry>
<entry>
<title>make check_curl test a little less specific (#2245)</title>
<updated>2026-03-26T00:07:00Z</updated>
<author>
<name>Lorenz Kästle</name>
<email>12514511+RincewindsHat@users.noreply.github.com</email>
</author>
<published>2026-03-26T00:07:00Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=9d8503f90ef25b2cecd324dc118e441f40233ea8'/>
<id>urn:sha1:9d8503f90ef25b2cecd324dc118e441f40233ea8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>check_curl: check certificates and exit before checking for curl_easy_perform result (#2239)</title>
<updated>2026-03-13T16:06:59Z</updated>
<author>
<name>inqrphl</name>
<email>32687873+inqrphl@users.noreply.github.com</email>
</author>
<published>2026-03-13T16:06:59Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=a9e23d05a6c0180b76cc5dc796c8892aaa5ddd3e'/>
<id>urn:sha1:a9e23d05a6c0180b76cc5dc796c8892aaa5ddd3e</id>
<content type='text'>
* check certificates first, before the return code of curl_easy_perform

* fix typo

* simply the comment for the change

details go into PR request.</content>
</entry>
<entry>
<title>add proxy argument and improve dns cache usage (#2209)</title>
<updated>2026-03-13T14:54:23Z</updated>
<author>
<name>inqrphl</name>
<email>32687873+inqrphl@users.noreply.github.com</email>
</author>
<published>2026-03-13T14:54:23Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=b9cd60ec3a2eaa8155286c6b2ee131030f7feec7'/>
<id>urn:sha1:b9cd60ec3a2eaa8155286c6b2ee131030f7feec7</id>
<content type='text'>
* 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-&gt;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 &lt;Ahmet.Oeztuerk@consol.de&gt;</content>
</entry>
<entry>
<title>Fix check_procs -T option (#2235)</title>
<updated>2026-02-19T14:04:28Z</updated>
<author>
<name>Mathieu Gagné</name>
<email>mgagne@users.noreply.github.com</email>
</author>
<published>2026-02-19T14:04:28Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=a793000948039afa1af9792dd776e2f9cda5b538'/>
<id>urn:sha1:a793000948039afa1af9792dd776e2f9cda5b538</id>
<content type='text'>
The "T" argument of check_procs is only a switch, but did expect an argument. This changes fixes that.</content>
</entry>
<entry>
<title>Fix typo in enum MP_PARSING_SUCCES(S) (#2233)</title>
<updated>2026-02-16T10:22:39Z</updated>
<author>
<name>Dirk Mueller</name>
<email>dmueller@suse.com</email>
</author>
<published>2026-02-16T10:22:39Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=07a249a5d74a980ca78cead569de5351963cc561'/>
<id>urn:sha1:07a249a5d74a980ca78cead569de5351963cc561</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Make IPv6 unconditional (#2219)</title>
<updated>2026-02-06T11:59:58Z</updated>
<author>
<name>Lorenz Kästle</name>
<email>12514511+RincewindsHat@users.noreply.github.com</email>
</author>
<published>2026-02-06T11:59:58Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=0f0865c910096c95594ac09929708e84934e46df'/>
<id>urn:sha1:0f0865c910096c95594ac09929708e84934e46df</id>
<content type='text'>
This commits removes the detection of IPv6 availability.
The IPv6 code in the plugins is used unconditionally now.</content>
</entry>
<entry>
<title>OpenBSD: pledge(2) some network-facing checks (#2225)</title>
<updated>2026-02-06T11:58:38Z</updated>
<author>
<name>Alvar</name>
<email>post@0x21.biz</email>
</author>
<published>2026-02-06T11:58:38Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=cef40299a93233f043f5b0821a9ad2c69dd612f7'/>
<id>urn:sha1:cef40299a93233f043f5b0821a9ad2c69dd612f7</id>
<content type='text'>
OpenBSD's pledge(2) system call allows the current process to
self-restrict itself, being reduced to promised pledges. For example,
unless a process says it wants to write to files, it is not allowed to
do so any longer.

This change starts by calling pledge(2) in some network-facing checks,
removing the more dangerous privileges, such as executing other files.

My initial motivation came from check_icmp, being installed as a setuid
binary and (temporarily) running with root privileges. There, the
pledge(2) calls result in check_icmp to only being allowed to interact
with the network and to setuid(2) to the calling user later on.

Afterwards, I went through my most commonly used monitoring plugins
directly interacting with the network. Thus, I continued with
pledge(2)-ing check_curl - having a huge codebase and all -,
check_ntp_time, check_smtp, check_ssh, and check_tcp.

For most of those, the changes were quite similar: start with
network-friendly promises, parse the configuration, give up file access,
and proceed with the actual check.</content>
</entry>
<entry>
<title>check_disk: compare inode thresholds against the correct value (#2223)</title>
<updated>2026-01-16T11:16:45Z</updated>
<author>
<name>Lorenz Kästle</name>
<email>12514511+RincewindsHat@users.noreply.github.com</email>
</author>
<published>2026-01-16T11:16:45Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=f5f60f57172a4157b90415746a0f1a87c46c0bd9'/>
<id>urn:sha1:f5f60f57172a4157b90415746a0f1a87c46c0bd9</id>
<content type='text'>
* check_disk: compare inode thresholds against the correct value

* check_disk: Detect free inode number correctly in tests

---------

Co-authored-by: Lorenz Kästle &lt;lorenz.kaestle@netways.de&gt;</content>
</entry>
<entry>
<title>Merge pull request #2200 from RincewindsHat/modern_output/check_radius</title>
<updated>2026-01-09T14:13:36Z</updated>
<author>
<name>Lorenz Kästle</name>
<email>12514511+RincewindsHat@users.noreply.github.com</email>
</author>
<published>2026-01-09T14:13:36Z</published>
<link rel='alternate' type='text/html' href='https://www.monitoring-plugins.org/repositories/monitoring-plugins/commit/?id=46563cea2b56b28b913cdb1c0493e6ee978fa134'/>
<id>urn:sha1:46563cea2b56b28b913cdb1c0493e6ee978fa134</id>
<content type='text'>
check_radius: Implement modern output</content>
</entry>
</feed>
