summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/check-mirrors38
-rw-r--r--etc/nginx.conf65
-rwxr-xr-xlibexec/git-notify15
-rw-r--r--web/input/development.md4
-rw-r--r--web/input/download.md8
-rw-r--r--web/input/impressum.md6
-rw-r--r--web/input/index.md20
-rw-r--r--web/input/news/release-3-0-0-rc1.md80
-rw-r--r--web/input/news/release-3-0-0-rc2.md43
-rw-r--r--web/macros.py13
10 files changed, 218 insertions, 74 deletions
diff --git a/bin/check-mirrors b/bin/check-mirrors
index 9048640..badcb83 100755
--- a/bin/check-mirrors
+++ b/bin/check-mirrors
@@ -17,9 +17,7 @@ mirrors='
17 https://ftp.lysator.liu.se/pub/monitoring-plugins/ 17 https://ftp.lysator.liu.se/pub/monitoring-plugins/
18 https://ftp.belnet.be/mirror/nagios-plugins.org/ 18 https://ftp.belnet.be/mirror/nagios-plugins.org/
19 https://ftp.cc.uoc.gr/mirrors/monitoring-plugins/ 19 https://ftp.cc.uoc.gr/mirrors/monitoring-plugins/
20 https://mirrors.fe.up.pt/pub/monitoring-plugins/
21 https://ftp2.osuosl.org/pub/monitoring-plugins/ 20 https://ftp2.osuosl.org/pub/monitoring-plugins/
22 https://mirror.bytemark.co.uk/monitoring-plugins/
23 http://mirror.mephi.ru/nagios-plugins/ 21 http://mirror.mephi.ru/nagios-plugins/
24 https://ftp.kaist.ac.kr/nagios-plugins/ 22 https://ftp.kaist.ac.kr/nagios-plugins/
25 https://mirrors.ustc.edu.cn/monitoring-plugins/ 23 https://mirrors.ustc.edu.cn/monitoring-plugins/
@@ -105,25 +103,6 @@ mirrors='
105# Home page: 103# Home page:
106# - http://www.en.uoc.gr/ 104# - http://www.en.uoc.gr/
107# 105#
108# PORTUGAL
109#
110# URLs:
111# - ftp://mirrors.fe.up.pt/pub/monitoring-plugins/
112# - http://mirrors.fe.up.pt/pub/monitoring-plugins/
113# - https://mirrors.fe.up.pt/pub/monitoring-plugins/
114#
115# Features:
116# - IPv4
117# - IPv6
118# - Updated daily
119#
120# Contacts:
121# - Mirror Admins <mirrors AT fe.up.pt>
122# - Filipe Carvalho <filipec AT sp.up.pt>
123#
124# Home page:
125# - http://www.sp.up.pt/
126#
127# UNITED STATES 106# UNITED STATES
128# 107#
129# URLs: 108# URLs:
@@ -142,23 +121,6 @@ mirrors='
142# - http://osuosl.org/ 121# - http://osuosl.org/
143# 122#
144# 123#
145# UNITED KINGDOM
146#
147# URLs:
148# - http://mirror.bytemark.co.uk/monitoring-plugins/
149# - https://mirror.bytemark.co.uk/monitoring-plugins/
150#
151# Features:
152# - IPv4
153# - IPv6
154# - Updated twice a day
155#
156# Contacts:
157# - James Lawrie <support AT support.bytemark.co.uk>
158#
159# Home page:
160# - http://www.bytemark.co.uk/
161#
162# RUSSIA 124# RUSSIA
163# 125#
164# URLs: 126# URLs:
diff --git a/etc/nginx.conf b/etc/nginx.conf
index ee815d3..f8e61bf 100644
--- a/etc/nginx.conf
+++ b/etc/nginx.conf
@@ -19,10 +19,12 @@ ssl_dhparam /home/plugins/etc/ssl/dh-parameters.pem;
19# Server definition for <https://www.monitoring-plugins.org/>. 19# Server definition for <https://www.monitoring-plugins.org/>.
20# 20#
21server { 21server {
22 listen 130.133.8.40:443 ssl; 22 listen 130.133.8.40:443 ssl http2;
23 listen 130.133.8.40:444 ssl; 23 listen 130.133.8.40:444 ssl http2;
24 server_name www.monitoring-plugins.org; 24 server_name www.monitoring-plugins.org;
25 root /home/plugins/web/port-$server_port; 25 root /home/plugins/web/port-$server_port;
26 ssl_certificate /home/plugins/etc/ssl/monitoring-plugins.crt;
27 ssl_certificate_key /home/plugins/etc/ssl/monitoring-plugins.key;
26 28
27 # 29 #
28 # Downloads and attachments. 30 # Downloads and attachments.
@@ -34,7 +36,10 @@ server {
34 } 36 }
35 root /home/plugins/web; 37 root /home/plugins/web;
36 fancyindex on; 38 fancyindex on;
39 fancyindex_default_sort date_desc;
40 fancyindex_name_length 40;
37 fancyindex_exact_size off; 41 fancyindex_exact_size off;
42 fancyindex_time_format "%F";
38 fancyindex_css_href /resources/plugins.css; 43 fancyindex_css_href /resources/plugins.css;
39 fancyindex_ignore ^timestamp$; 44 fancyindex_ignore ^timestamp$;
40 } 45 }
@@ -78,6 +83,15 @@ server {
78 } 83 }
79 84
80 # 85 #
86 # Rspamd.
87 #
88 location /rspamd/ {
89 proxy_pass http://127.0.0.1:11334/;
90 proxy_set_header Host $host;
91 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
92 }
93
94 #
81 # Redirects etc. 95 # Redirects etc.
82 # 96 #
83 location = /favicon.ico { 97 location = /favicon.ico {
@@ -119,20 +133,55 @@ server {
119} 133}
120 134
121# 135#
122# Redirect HTTP and all other domains to <https://www.monitoring-plugins.org/>. 136# Redirect HTTP to <https://www.monitoring-plugins.org/>. Ditto for the test
123# Ditto for the test instance. 137# instance.
124# 138#
125server { 139server {
126 listen 130.133.8.40:80 default_server; 140 listen 130.133.8.40:80;
127 listen 130.133.8.40:443 default_server ssl; 141 server_name monitoring-plugins.org www.monitoring-plugins.org;
142 return 301 https://www.monitoring-plugins.org$request_uri;
143}
144
145server {
146 listen 130.133.8.40:81;
147 server_name monitoring-plugins.org www.monitoring-plugins.org;
148 return 301 https://www.monitoring-plugins.org:444$request_uri;
149}
150
151#
152# Add "www" prefix. Ditto for the test instance.
153#
154server {
155 listen 130.133.8.40:443 ssl http2;
156 server_name monitoring-plugins.org;
128 ssl_certificate /home/plugins/etc/ssl/monitoring-plugins.crt; 157 ssl_certificate /home/plugins/etc/ssl/monitoring-plugins.crt;
129 ssl_certificate_key /home/plugins/etc/ssl/monitoring-plugins.key; 158 ssl_certificate_key /home/plugins/etc/ssl/monitoring-plugins.key;
130 return 301 https://www.monitoring-plugins.org$request_uri; 159 return 301 https://www.monitoring-plugins.org$request_uri;
131} 160}
161
132server { 162server {
133 listen 130.133.8.40:81 default_server; 163 listen 130.133.8.40:444 ssl http2;
134 listen 130.133.8.40:444 default_server ssl; 164 server_name monitoring-plugins.org;
135 ssl_certificate /home/plugins/etc/ssl/monitoring-plugins.crt; 165 ssl_certificate /home/plugins/etc/ssl/monitoring-plugins.crt;
136 ssl_certificate_key /home/plugins/etc/ssl/monitoring-plugins.key; 166 ssl_certificate_key /home/plugins/etc/ssl/monitoring-plugins.key;
137 return 301 https://www.monitoring-plugins.org:444$request_uri; 167 return 301 https://www.monitoring-plugins.org:444$request_uri;
138} 168}
169
170#
171# Outdated domains. Can be deleted in 2026.
172#
173server {
174 listen 130.133.8.40:80 default_server;
175 listen 130.133.8.40:443 default_server ssl http2;
176 root /home/plugins/web-redirect;
177 ssl_certificate /home/plugins/etc/ssl/monitoring-plugins.crt;
178 ssl_certificate_key /home/plugins/etc/ssl/monitoring-plugins.key;
179}
180
181server {
182 listen 130.133.8.40:81 default_server;
183 listen 130.133.8.40:444 default_server ssl http2;
184 root /home/plugins/web-redirect;
185 ssl_certificate /home/plugins/etc/ssl/monitoring-plugins.crt;
186 ssl_certificate_key /home/plugins/etc/ssl/monitoring-plugins.key;
187}
diff --git a/libexec/git-notify b/libexec/git-notify
index 64da7c0..228c7d6 100755
--- a/libexec/git-notify
+++ b/libexec/git-notify
@@ -4,6 +4,7 @@
4# 4#
5# Copyright 2005 Alexandre Julliard 5# Copyright 2005 Alexandre Julliard
6# Copyright 2009, 2013 Nagios Plugins Development Team 6# Copyright 2009, 2013 Nagios Plugins Development Team
7# Copyright 2024, 2025 Monitoring Plugins Development Team
7# 8#
8# This program is free software; you can redistribute it and/or 9# This program is free software; you can redistribute it and/or
9# modify it under the terms of the GNU General Public License as 10# modify it under the terms of the GNU General Public License as
@@ -34,9 +35,12 @@
34# 35#
35 36
36use strict; 37use strict;
37use Fcntl ':flock'; 38use utf8;
38use Encode qw(encode decode); 39use feature qw(evalbytes unicode_eval unicode_strings);
40use open qw(:std :utf8);
39use Cwd 'realpath'; 41use Cwd 'realpath';
42use Encode qw(encode);
43use Fcntl ':flock';
40 44
41sub git_config($); 45sub git_config($);
42sub get_repos_name(); 46sub get_repos_name();
@@ -449,7 +453,7 @@ sub send_commit_notice($$)
449 my ($ref,$obj) = @_; 453 my ($ref,$obj) = @_;
450 my %info = get_object_info($obj); 454 my %info = get_object_info($obj);
451 my @notice = (); 455 my @notice = ();
452 my ($url,$subject,$obj_string); 456 my ($url,$from,$subject,$obj_string);
453 457
454 if ($gitweb_url) 458 if ($gitweb_url)
455 { 459 {
@@ -515,9 +519,8 @@ sub send_commit_notice($$)
515 } 519 }
516 520
517 $subject .= truncate_str(${$info{"log"}}[0],50); 521 $subject .= truncate_str(${$info{"log"}}[0],50);
518 $_ = decode($info{"encoding"}, $_) for @notice; 522 $from = encode("MIME-Q",$info{'committer_name'}) . " <$from_address>";
519 mail_notification("$info{'committer_name'} <$from_address>", $commitlist_address, $subject, 523 mail_notification($from, $commitlist_address, $subject, "text/plain; charset=UTF-8", @notice);
520 "text/plain; charset=UTF-8", @notice);
521} 524}
522 525
523# send a commit notice to the CIA server 526# send a commit notice to the CIA server
diff --git a/web/input/development.md b/web/input/development.md
index bb3047d..67cd3a8 100644
--- a/web/input/development.md
+++ b/web/input/development.md
@@ -48,7 +48,7 @@ commands:
48Also see our testing-related [development FAQs][dev-faq]. 48Also see our testing-related [development FAQs][dev-faq].
49 49
50[team]: team.html "Monitoring Plugins Development Team" 50[team]: team.html "Monitoring Plugins Development Team"
51[nagios]: http://www.nagios.org/ "Nagios" 51[nagios]: https://www.nagios.org/ "Nagios"
52[github]: https://github.com/ "GitHub" 52[github]: https://github.com/ "GitHub"
53[fork]: https://help.github.com/articles/fork-a-repo "Fork Documentation" 53[fork]: https://help.github.com/articles/fork-a-repo "Fork Documentation"
54[pull]: https://help.github.com/articles/using-pull-requests "Pull Request Documentation" 54[pull]: https://help.github.com/articles/using-pull-requests "Pull Request Documentation"
@@ -56,7 +56,7 @@ Also see our testing-related [development FAQs][dev-faq].
56[git-ref]: doc/faq/git.html#references "Git References" 56[git-ref]: doc/faq/git.html#references "Git References"
57[master-img]: https://github.com/monitoring-plugins/monitoring-plugins/actions/workflows/test.yml/badge.svg?branch=master "Build Status master" 57[master-img]: https://github.com/monitoring-plugins/monitoring-plugins/actions/workflows/test.yml/badge.svg?branch=master "Build Status master"
58[coverity-img]: https://scan.coverity.com/projects/1435/badge.svg?flat=1 "Coverity Metric" 58[coverity-img]: https://scan.coverity.com/projects/1435/badge.svg?flat=1 "Coverity Metric"
59[libtap]: http://jc.ngo.org.uk/trac-bin/trac.cgi/wiki/LibTap "LibTap Homepage" 59[libtap]: https://github.com/zorgnax/libtap "LibTap Homepage"
60[dev-faq]: doc/faq/#development "Development FAQs" 60[dev-faq]: doc/faq/#development "Development FAQs"
61[github-actions]: https://docs.github.com/en/actions "GitHub Docs - GitHub Actions" 61[github-actions]: https://docs.github.com/en/actions "GitHub Docs - GitHub Actions"
62[github-ci-actions]: https://github.com/monitoring-plugins/monitoring-plugins/actions "Monitoring Plugins - Github Workflows" 62[github-ci-actions]: https://github.com/monitoring-plugins/monitoring-plugins/actions "Monitoring Plugins - Github Workflows"
diff --git a/web/input/download.md b/web/input/download.md
index 75ad689..4758175 100644
--- a/web/input/download.md
+++ b/web/input/download.md
@@ -19,8 +19,7 @@ See the [release history][news] for an overview of changes between earlier
19versions. Old releases can be found in the [download area][download]. There 19versions. Old releases can be found in the [download area][download]. There
20are mirrors available in [Belgium][mirror-be], [China][mirror-cn], 20are mirrors available in [Belgium][mirror-be], [China][mirror-cn],
21[Germany][mirror-de], [Greece][mirror-gr], [Korea][mirror-kr], 21[Germany][mirror-de], [Greece][mirror-gr], [Korea][mirror-kr],
22[Portugal][mirror-pt], [Russia][mirror-ru], [Sweden][mirror-se], the 22[Russia][mirror-ru], [Sweden][mirror-se], and the [USA][mirror-us].
23[UK][mirror-uk], and the [USA][mirror-us].
24 23
25### Development Snapshot 24### Development Snapshot
26 25
@@ -37,7 +36,7 @@ directory][snapshot] of the [download area][download].
37 36
38The Monitoring::Plugin module is available from [CPAN][cpan]: 37The Monitoring::Plugin module is available from [CPAN][cpan]:
39 38
40* <http://search.cpan.org/dist/Monitoring-Plugin/> 39* <https://metacpan.org/dist/Monitoring-Plugin>
41 40
42## NagiosMIB 41## NagiosMIB
43 42
@@ -53,7 +52,6 @@ Old versions can be found [within][mib] the [download area][download].
53[mirror-de]: https://ftp.fu-berlin.de/unix/network/monitoring-plugins/ "Mirror in Germany" 52[mirror-de]: https://ftp.fu-berlin.de/unix/network/monitoring-plugins/ "Mirror in Germany"
54[mirror-gr]: https://ftp.cc.uoc.gr/mirrors/monitoring-plugins/ "Mirror in Greece" 53[mirror-gr]: https://ftp.cc.uoc.gr/mirrors/monitoring-plugins/ "Mirror in Greece"
55[mirror-kr]: https://ftp.kaist.ac.kr/nagios-plugins/ "Mirror in Korea" 54[mirror-kr]: https://ftp.kaist.ac.kr/nagios-plugins/ "Mirror in Korea"
56[mirror-pt]: https://mirrors.fe.up.pt/pub/monitoring-plugins/ "Mirror in Portugal"
57[mirror-ru]: http://mirror.mephi.ru/nagios-plugins/ "Mirror in Russia" 55[mirror-ru]: http://mirror.mephi.ru/nagios-plugins/ "Mirror in Russia"
58[mirror-se]: https://ftp.lysator.liu.se/pub/monitoring-plugins/ "Mirror in Sweden" 56[mirror-se]: https://ftp.lysator.liu.se/pub/monitoring-plugins/ "Mirror in Sweden"
59[mirror-uk]: https://mirror.bytemark.co.uk/monitoring-plugins/ "Mirror in the United Kingdom" 57[mirror-uk]: https://mirror.bytemark.co.uk/monitoring-plugins/ "Mirror in the United Kingdom"
@@ -63,7 +61,7 @@ Old versions can be found [within][mib] the [download area][download].
63[download]: download/ "Download Area" 61[download]: download/ "Download Area"
64[snapshot]: download/snapshot/ "Snapshot Directory" 62[snapshot]: download/snapshot/ "Snapshot Directory"
65[mib]: download/mib/ "NagiosMIB Directory" 63[mib]: download/mib/ "NagiosMIB Directory"
66[cpan]: http://www.cpan.org/ "CPAN" 64[cpan]: https://www.cpan.org/ "CPAN"
67[tar1]: download/monitoring-plugins-{{plugins_release}}.tar.gz "Current Release Tarball" 65[tar1]: download/monitoring-plugins-{{plugins_release}}.tar.gz "Current Release Tarball"
68[sum1]: download/monitoring-plugins-{{plugins_release}}.tar.gz.sha1 "SHA-1 Sum" 66[sum1]: download/monitoring-plugins-{{plugins_release}}.tar.gz.sha1 "SHA-1 Sum"
69[tar2]: download/snapshot/monitoring-plugins-master.tar.gz "Current Snapshot Tarball" 67[tar2]: download/snapshot/monitoring-plugins-master.tar.gz "Current Snapshot Tarball"
diff --git a/web/input/impressum.md b/web/input/impressum.md
index ac15f7a..d79ea74 100644
--- a/web/input/impressum.md
+++ b/web/input/impressum.md
@@ -9,12 +9,12 @@ parent: Home
9Responsible for the content of this site: 9Responsible for the content of this site:
10 10
11Holger Weiß 11Holger Weiß
12Gutsmuthsstr. 19 12Buggestr. 11
1312163 Berlin 1312163 Berlin
14Germany 14Germany
15 15
16**Phone:** 16**Phone:**
17&emsp; +49 30 61286685 17&emsp; +49 160 7282852
18 18
19**Email:** 19**Email:**
20&emsp; holger@zedat.fu-berlin.de 20&emsp; holger@zedat.fu-berlin.de
@@ -22,6 +22,6 @@ Germany
22**Jabber:** 22**Jabber:**
23&emsp; holger@jabber.fu-berlin.de 23&emsp; holger@jabber.fu-berlin.de
24 24
25[law]: http://www.gesetze-im-internet.de/ddg/__5.html 25[law]: https://www.gesetze-im-internet.de/ddg/__5.html
26 26
27<!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %--> 27<!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %-->
diff --git a/web/input/index.md b/web/input/index.md
index 6c18870..29a9285 100644
--- a/web/input/index.md
+++ b/web/input/index.md
@@ -33,25 +33,25 @@ monitoring products as well.
33You can get the latest releases from the [download page][download]. 33You can get the latest releases from the [download page][download].
34 34
35[team]: team.html "Monitoring Plugins Development Team" 35[team]: team.html "Monitoring Plugins Development Team"
36[icinga]: https://www.icinga.org/ "Icinga" 36[icinga]: https://icinga.com/ "Icinga"
37[naemon]: http://naemon.github.io/ "Naemon" 37[naemon]: https://www.naemon.io/ "Naemon"
38[nagios]: http://www.nagios.org/ "Nagios" 38[nagios]: https://www.nagios.org/ "Nagios"
39[sensu]: http://sensuapp.org/ "Sensu" 39[sensu]: https://sensu.io/ "Sensu"
40[shinken]: http://www.shinken-monitoring.org/ "Shinken" 40[shinken]: https://github.com/shinken-solutions/shinken "Shinken"
41[load]: doc/man/check_load.html "check_load" 41[load]: doc/man/check_load.html "check_load"
42[procs]: doc/man/check_procs.html "check_procs" 42[procs]: doc/man/check_procs.html "check_procs"
43[disk]: doc/man/check_disk.html "check_disk" 43[disk]: doc/man/check_disk.html "check_disk"
44[icmp]: doc/man/check_icmp.html "check_icmp" 44[icmp]: doc/man/check_icmp.html "check_icmp"
45[snmp]: doc/man/check_snmp.html "check_snmp" 45[snmp]: doc/man/check_snmp.html "check_snmp"
46[http]: doc/man/check_http.html "check_http" 46[http]: doc/man/check_http.html "check_http"
47[nagex]: http://exchange.nagios.org/directory/Plugins "Plugins on Nagios Exchange" 47[nagex]: https://exchange.nagios.org/directory/Plugins "Plugins on Nagios Exchange"
48[icnex]: https://exchange.icinga.org/dig/Plugins "Plugins on Icinga Exchange" 48[icnex]: https://exchange.icinga.com/ "Icinga Exchange"
49[module]: http://search.cpan.org/dist/Monitoring-Plugin/ "Monitoring::Plugin Module" 49[module]: https://metacpan.org/dist/Monitoring-Plugin "Monitoring::Plugin Module"
50[guidelines]: doc/guidelines.html "Monitoring Plugin Development Guidelines" 50[guidelines]: doc/guidelines.html "Monitoring Plugin Development Guidelines"
51[perl-plugins]: doc/writing-perl-plugins.html "Monitoring::Plugin Presentation" 51[perl-plugins]: doc/writing-perl-plugins.html "Monitoring::Plugin Presentation"
52[rename]: news/new-project-name.html "New Project Name" 52[rename]: news/new-project-name.html "New Project Name"
53[history]: http://www.nagios.org/about/history "Nagios (Plugins) History" 53[history]: https://www.nagios.org/about/history/ "Nagios (Plugins) History"
54[folks]: http://www.nagios.org/about/team "Nagios Team" 54[folks]: https://www.nagios.org/team/ "Nagios Team"
55[download]: download.html "Download" 55[download]: download.html "Download"
56 56
57<!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %--> 57<!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %-->
diff --git a/web/input/news/release-3-0-0-rc1.md b/web/input/news/release-3-0-0-rc1.md
new file mode 100644
index 0000000..85c7982
--- /dev/null
+++ b/web/input/news/release-3-0-0-rc1.md
@@ -0,0 +1,80 @@
1title: Version 3.0.0-rc1 Released
2author: Lorenz Kästle
3date: 2025-12-03
4---
5
6The Monitoring Plugins Development Team announces version 3.0.0-rc1 of
7the Monitoring Plugins!
8This release is different in several regards to previous releases.
9Due the a significant refactoring and the unintented side effect this
10may have, the "real" release will be following release candidates which
11are intented to for early adapters and testing.
12<end-of-teaser>
13
14The core parts of this release are significant changes to the C part of this
15project, which should be mostly internal and not change the results in a
16significant way (meaning the input parameters mostly stay as they are and the
17exit code should remain the same if the parameters are the same in the old
18version and context did not change).
19The reality is, that big changes have
20unintented consequences which are not covered in the test cases or some
21consequences were not in our scope at all.
22For the list of notable changes in this release, see below.
23
24You can get the tarball from our [download page][download].
25
26### General changes
27* In the C part of the project
28 * Heavy refactoring to simplify and unify the code base
29 * Introduction of a generalized output mechanism for most plugins
30 * Standardized code formatting via `clang-format`
31
32### Specific changes
33#### check_curl
34`check_curl` received a lot of changes which improve the documentation and
35fix several bugs.
36It is also not considered experimental anymore.
37
38Additionaly `check_curl` can now be configured to handle cookies internally
39without saving cookies to the filesystem.
40
41#### check_http
42`check_http` is now considered deprecated and will not receive attention any
43more. It is replaced by `check_curl`
44
45#### check_snmp
46`check_snmp` does not execute `snmpget` or `snmpgetnext` anymore but executes
47the net-snmp calls natively now.
48
49#### check_nwstat
50`check_nwstat` was removed, due to its perceived insignificance in the current
51IT world. This reduces the maintenance load and ressource consumption in
52general.
53
54#### check_by_ssh
55`check_by_ssh` ignores output on `stderr` by default now. This should
56avoid false positives for warnings by the OpenSSH client (especially
57about the server missing Post-Quantum cryptography.
58
59#### check_dns
60`check_dns` now ignores CNAMES in reverse DNS mode.
61
62#### check_fping
63If during compilation `fping` 5.2, 5.3 or higher are present, `check_fping`
64will be able to use new options which were introduced with these versions.
65These options are (equivalent to the ones with the same name in `fping`)
66`--fwmark`, `--icmp-timestamp` and `--check-source`.
67The older flags `--dontfrag` and `--random` were also added.
68
69Also the `-4` and `-6` flags may not have worked as intented and should be
70fixed now.
71
72#### check_mysql
73`check_mysql` should now be able to correctly detect whether a replica is
74attached and working correctly.
75Changes were necessary here to adapt to changes in the naming convention in
76MySQL.
77
78[download]: /download.html
79
80<!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %-->
diff --git a/web/input/news/release-3-0-0-rc2.md b/web/input/news/release-3-0-0-rc2.md
new file mode 100644
index 0000000..79746bd
--- /dev/null
+++ b/web/input/news/release-3-0-0-rc2.md
@@ -0,0 +1,43 @@
1title: Version 3.0.0-rc2 Released
2author: Lorenz Kästle
3date: 2026-01-02
4---
5
6The Monitoring Plugins Development Team announces version 3.0.0-rc2 of
7the Monitoring Plugins!
8
9This is the second release candidate for version 3.0.0.
10
11It contains mostly fixes to the 3.0.0-rc1 version and is also not a full release,
12but serves as a basis for test until we are mostly sure not to break production
13setups.
14
15### Changes
16* check_nt was removed
17 check_nt is no long useful in current setups and hasn't been for some time.
18 Therefore it was removed without a replacement.
19* check_ntp was removed
20 check_ntp was marked as deprecated for a long time due to systematic problems.
21 It should not be in use anywhere and gets now removed to reduce code size and
22 avoid misleading users.
23 The replacements are check_ntp_time and check_ntp_peer
24* Bugfix for check_ntp_time
25 An errournous change in check_ntp_time made it fail in almost all use cases.
26 This has been fixed
27* Properly separate perfdata from different subchecks
28 A missing separator caused errors in perfdata strings (from C plugins) where
29 two different data points where not properly separated and showed up as a single
30 invalid data point
31* check_curl: append the query string from parsed uri
32 When using the old style follow method (`-f follow`) with check_curl the query string was not
33 appended to the new target after redirect. This was fixed. (Thanks Ahmet Oeztuerk)
34* Fixing different problems on OpenBSD
35 A few different things did prevent proper compilation and usage on OpenBSD, partly due
36 to different naming conventions there. These are hopefully fixed now. Thanks to Alvar Penning
37 and Stuart Henderson.
38* Gnulib update to stable-202507
39
40
41[download]: /download.html
42
43<!--% # vim:set filetype=markdown textwidth=78 joinspaces expandtab: # %-->
diff --git a/web/macros.py b/web/macros.py
index 5536f3f..eab21bc 100644
--- a/web/macros.py
+++ b/web/macros.py
@@ -3,7 +3,7 @@ import math
3import os.path 3import os.path
4import time 4import time
5 5
6plugins_release = '2.4.0' 6plugins_release = '3.0.0-rc2'
7mib_release = '1.0.1' 7mib_release = '1.0.1'
8release_notes = 'news/release-%s.html' % plugins_release.replace('.', '-') 8release_notes = 'news/release-%s.html' % plugins_release.replace('.', '-')
9site_url = 'https://www.monitoring-plugins.org/' 9site_url = 'https://www.monitoring-plugins.org/'
@@ -52,6 +52,7 @@ _RSS_ITEM = """
52 </item> 52 </item>
53""" 53"""
54 54
55
55def hook_postconvert_rss(): 56def hook_postconvert_rss():
56 items = [] 57 items = []
57 posts = [p for p in pages if 'date' in p] 58 posts = [p for p in pages if 'date' in p]
@@ -75,6 +76,7 @@ def hook_postconvert_rss():
75# News 76# News
76# 77#
77 78
79
78def hook_preconvert_news(): 80def hook_preconvert_news():
79 posts_per_page = 10 81 posts_per_page = 10
80 posts = [p for p in pages if 'date' in p] 82 posts = [p for p in pages if 'date' in p]
@@ -97,6 +99,7 @@ def hook_preconvert_news():
97 parent='News') 99 parent='News')
98 pages.append(p) 100 pages.append(p)
99 101
102
100def make_news_page(posts, current_index): 103def make_news_page(posts, current_index):
101 marker = '<end-of-teaser>' 104 marker = '<end-of-teaser>'
102 if current_index == 0: 105 if current_index == 0:
@@ -121,6 +124,7 @@ def make_news_page(posts, current_index):
121 p['parent'] = title 124 p['parent'] = title
122 return '\n'.join(teaser) + '\n\n' 125 return '\n'.join(teaser) + '\n\n'
123 126
127
124def make_news_footer(n_news_pages, current_index): 128def make_news_footer(n_news_pages, current_index):
125 if n_news_pages == 1: 129 if n_news_pages == 1:
126 return '' 130 return ''
@@ -142,6 +146,7 @@ def make_news_footer(n_news_pages, current_index):
142 footer.append('[Last](news/%d.html)' % n_news_pages) 146 footer.append('[Last](news/%d.html)' % n_news_pages)
143 return '&emsp;'.join(footer) + '\n{: #news-footer }\n' 147 return '&emsp;'.join(footer) + '\n{: #news-footer }\n'
144 148
149
145def next_news_chunk(posts, posts_per_page): 150def next_news_chunk(posts, posts_per_page):
146 index = 0 151 index = 0
147 while len(posts[index:]) > 0: 152 while len(posts[index:]) > 0:
@@ -152,6 +157,7 @@ def next_news_chunk(posts, posts_per_page):
152# Menu and Breadcrumb Navigation 157# Menu and Breadcrumb Navigation
153# 158#
154 159
160
155def menu(): 161def menu():
156 menu_pages = [p for p in pages if 'menu' in p] 162 menu_pages = [p for p in pages if 'menu' in p]
157 menu_pages.sort(key=lambda p: int(p['menu'])) 163 menu_pages.sort(key=lambda p: int(p['menu']))
@@ -161,9 +167,10 @@ def menu():
161 else: 167 else:
162 print('<span><a href="%s">%s</a></span>' % (p.url, hx(p.title))) 168 print('<span><a href="%s">%s</a></span>' % (p.url, hx(p.title)))
163 169
170
164def breadcrumb(): 171def breadcrumb():
165 stable = '<span id="release">Stable release: <a href="%s">%s</a></span>' \ 172 stable = '<span id="release">Stable release: <a href="%s">%s</a></span>' \
166 % (release_notes, plugins_release) 173 % (release_notes, plugins_release)
167 parents = {p.title: (p.url, p.get('parent')) for p in pages} 174 parents = {p.title: (p.url, p.get('parent')) for p in pages}
168 title = page.title 175 title = page.title
169 crumbs = hx(title) 176 crumbs = hx(title)
@@ -179,11 +186,13 @@ def breadcrumb():
179# Miscellaneous 186# Miscellaneous
180# 187#
181 188
189
182def list_kids(): 190def list_kids():
183 kids = [(p.url, p.title) for p in pages if p.get('parent') == page.title] 191 kids = [(p.url, p.title) for p in pages if p.get('parent') == page.title]
184 for kid in sorted(kids): 192 for kid in sorted(kids):
185 print('* [%s](%s)' % (kid[1], kid[0])) 193 print('* [%s](%s)' % (kid[1], kid[0]))
186 194
195
187def copyright_years(since=None): 196def copyright_years(since=None):
188 this_year = time.gmtime().tm_year 197 this_year = time.gmtime().tm_year
189 if since is not None and int(since) != this_year: 198 if since is not None and int(since) != this_year: