13610 Commits

Author SHA1 Message Date
Alexander A. Klimov
df84af17f8 TLS err - show CN 2023-04-11 11:58:23 +02:00
Alexander A. Klimov
e94f54cd54 TLS err - print SNI 2023-04-11 11:12:02 +02:00
Julian Brost
857e6e4e64
Merge pull request #9742 from Icinga/icingadb-notifications-have-wrong-icingaweb2-url-9350
etc/icinga2/scripts/mail-*-notification.sh: render Icinga DB Web URLs
2023-04-06 16:24:48 +02:00
Alexander A. Klimov
d88bbcbcef etc/icinga2/scripts/mail-*-notification.sh: render Icinga DB Web URLs
not monitoring module ones. This takes effect for new installations only.
2023-04-06 12:19:31 +02:00
Julian Brost
50018c1d2b
Merge pull request #8218 from efuss/redundancy_group
Introduce redundancy groups for Dependency Objects
2023-04-05 18:49:58 +02:00
Yonas Habteab
e7c5554d87 Test: Add multiline PerfData test case 2023-04-05 15:44:13 +02:00
Yonas Habteab
24d95e1178 PluginUtility: Fix PerfData don't get parsed correctly
The problem was that some PerfData labels contained several whitespace characters,
not just one, and therefore it was parsed incorrectly in `SplitPerfdata()`. I.e. the condition
in line 144 checks whether the first and last character is a normal quote, but since the
label can contain spaces at the beginning and at the end respectively, this caused the problems.

This PR fixes the problem by removing all occurring whitespace from the beginning and end,
before starting to parse the actual label.
2023-04-05 15:37:54 +02:00
Alexander A. Klimov
bcd16cbfb0 Rewrite Dependency redundancy groups docs 2023-04-05 14:46:35 +02:00
Alexander A. Klimov
9314c8c8a1 WIP 2023-04-05 11:51:36 +02:00
Alexander A. Klimov
0649504f00 WIP Certificate validation 2023-04-05 11:15:42 +02:00
Alexander A. Klimov
977a53f372 WIP 2023-04-05 11:04:45 +02:00
Alexander A. Klimov
36d9b37bf5 WIP SNI 2023-04-05 10:59:00 +02:00
Alexander A. Klimov
6867b82a1a WIP 2023-04-04 16:06:06 +02:00
Alexander A. Klimov
5a1ca5fb66 WIP timeout 2023-04-04 15:59:02 +02:00
Alexander A. Klimov
44a52b2700 WIP 2023-04-04 15:24:35 +02:00
Alexander A. Klimov
4fda32bd9e WIP 2023-04-04 15:23:41 +02:00
Alexander A. Klimov
07f6f6e3c5 WIP: Escape URL 2023-04-04 14:45:19 +02:00
Alexander A. Klimov
a66ace7245 Introduce SharedMemory 2023-04-04 13:40:27 +02:00
Alexander A. Klimov
7d25a89569 WIP 2023-04-04 12:08:38 +02:00
Alexander A. Klimov
7a920c5de3 WIP 2023-04-04 11:51:11 +02:00
Alexander A. Klimov
5a4098e930 WIP 2023-04-04 11:44:35 +02:00
Alexander A. Klimov
989eabd389 WIP 2023-04-04 11:38:45 +02:00
Alexander A. Klimov
efc01c0048 WIP 2023-04-04 11:17:00 +02:00
Alexander A. Klimov
45cb95d0c4 WIP 2023-04-04 11:09:01 +02:00
Alexander A. Klimov
c41e5fd05d Support multiple redundant Timer#Start() calls
so that only the first one changes l_AliveTimers (as in Timer#Stop()).
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
298f3b1973 Timer: actually support non-periodic timers 2023-04-04 10:35:22 +02:00
Alexander A. Klimov
3933502739 Timer#Start(): don't unnecessarily unlock/lock l_TimerMutex
via new Timer#InternalRescheduleUnlocked()
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
13b9cfda41 Timer::TimerThreadProc(): don't unnecessarily unlock and lock l_TimerMutex 2023-04-04 10:35:22 +02:00
Alexander A. Klimov
1badbab002 Timer::TimerThreadProc(): keep a Timer alive while it's running
to prevent the case: Timer callback destroys parent object -> destroys
Timer -> ~Timer() -> Stop(true) -> waits for the Timer callback to finish
-> deadlock.
2023-04-04 10:35:22 +02:00
Alexander A. Klimov
9b00c1c4dd Timer: drop unnecessary base class 2023-04-04 10:35:22 +02:00
Alexander A. Klimov
24681b30f6 Make Timer::Ptr a std::shared_ptr 2023-04-04 10:35:22 +02:00
Alexander A. Klimov
9ee4d08722 Make Timer#Timer() private to enforce Timer::Create() usage 2023-04-04 10:35:22 +02:00
Alexander A. Klimov
21b68455ce Use Timer::Create() instead of new Timer()
git ls-files -z |xargs -0 perl -pi -e 's/\bnew Timer\b/Timer::Create/g'

ex. in Timer::Create() itself.
2023-04-04 10:35:20 +02:00
Alexander A. Klimov
bb1f574b69 Introduce factory method Timer::Create() 2023-04-04 10:35:10 +02:00
Julian Brost
f3b148517f
Merge pull request #9714 from Icinga/CheckResultReader
Remove CheckResultReader which has been deprecated for 5 major versions
2023-04-03 16:31:19 +02:00
Alexander A. Klimov
2948d023bf Windows MSI: don't bundle NSClient++ 2023-04-03 14:36:30 +02:00
Alexander A. Klimov
6c810ddd96 Windows agent wizard: remove checkbox "Install/Update bundled NSClient++" 2023-04-03 14:36:30 +02:00
Alexander A. Klimov
973b701400 Docs: conceal that NSClient++ is bundled on Windows 2023-04-03 14:36:20 +02:00
Alexander A. Klimov
35248b1b63 Code style 2023-04-03 13:39:08 +02:00
Alexander A. Klimov
cc872dac1f Remove CheckResultReader which has been deprecated for 5 major versions 2023-04-03 11:39:21 +02:00
Julian Brost
41065e30c8
Merge pull request #9485 from Icinga/cxx17
Require GCC 7+ for C++17
2023-03-31 14:06:55 +02:00
Julian Brost
7a7902cea7
Merge pull request #9715 from Icinga/StatusDataWriter
Remove StatusDataWriter which has been deprecated for 5 major versions
2023-03-31 12:32:43 +02:00
Julian Brost
82f9e4312d
Merge pull request #9740 from Icinga/freeze-globals
Freeze globals namespace during config load
2023-03-31 10:51:26 +02:00
Julian Brost
e87e1ea73f Freeze globals namespace during config load
This allows for a faster config load due to less locking required.

The change is slightly backwards-incompatible. Before, you could manipulate the
globals namespace at a later stage, but disallowing this feels reasonable for
the performance benefit alone (which especially shows on many-core machines).
Apart from that, it's doubtful if doing so is even useful at all as the DSL
provides no mechanism for you to synchronize your operations that may run in
parallel. The data structures itself are protected from race conditions, but
anything implemented on top of this may still be subject to race conditions.
And even if some user has a good reason for doing this, there's a feasible
workaround by creating your own namespace like globals.mutable and using that
instead.
2023-03-30 18:07:51 +02:00
Julian Brost
1665cc925e
Merge pull request #9738 from Icinga/TimerThreadProc
Document why Timer::TimerThreadProc() can use Timer members during Timer#~Timer() call
2023-03-30 16:03:43 +02:00
Alexander A. Klimov
335688909b Document why Timer::TimerThreadProc() can use Timer members during Timer#~Timer() call 2023-03-29 18:04:19 +02:00
Alexander A. Klimov
4c154f93dc ApiListener#NewClientHandlerInternal(): on basic_socket#cancel() (due to timeout) don't ssl::stream#async_shutdown()
If a connection hangs for too long in ApiListener#NewClientHandler(),
ApiListener#AddConnection()'s Timeout calls boost::asio::basic_socket#cancel()
on that connection to trigger an exception which unwinds
ApiListener#NewClientHandler(). Previously that unwind could trigger a Defer
which called boost::asio::ssl::stream#async_shutdown() which extended the hang.
2023-03-21 10:57:40 +01:00
Silas
7f0aaf9b79
Update commands.conf 2023-03-13 12:47:39 +01:00
Julian Brost
66b039df9c
Merge pull request #9497 from Icinga/9249
Application::Exit(): don't exit(), but _exit(), even in debug build mode
2023-03-10 16:04:54 +01:00
Julian Brost
f47d7393c6
Merge pull request #9704 from Icinga/windows-perf-off
Don't include perfdata writers on Windows
2023-03-10 15:56:34 +01:00