Commit Graph

13421 Commits

Author SHA1 Message Date
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 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
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
Alexander Aleksandrovič Klimov ca3c24b317
Merge pull request #9717 from Icinga/Al2Klimov-patch-4
ProcessSpawnImpl(): remove redundant _exit(128);
2023-03-02 16:47:50 +01:00
Alexander Aleksandrovič Klimov 55930c8042
ProcessSpawnImpl(): remove redundant _exit(128);
Now this if doesn’t _exit(128) by itself, but "return" to the outer if which immediately _exit(128)s.
2023-03-02 12:45:15 +01:00
Alexander A. Klimov bbf2e80002 Remove StatusDataWriter which has been deprecated for 5 major versions 2023-03-01 17:16:28 +01:00
Julian Brost cf517050bc
Merge pull request #9711 from Icinga/connect-cancel
Connect(): don't try next DNS record if operation is canceled
2023-03-01 15:49:53 +01:00
Alexander A. Klimov 79f1e0666a Connect(): don't try next DNS record if operation is canceled
Instead return immediately to meet the caller's expectations.
2023-02-28 10:57:54 +01:00
Alexander Aleksandrovič Klimov 8281527c13
Merge pull request #9702 from Icinga/windows-ido-off
CMakeLists.txt: provide sane defaults for which subsystems to build
2023-02-23 19:02:33 +01:00
Alexander A. Klimov 5055d216a3 Don't include perfdata writers on Windows
Icinga DB, IDO and Livestatus are already not included.
2023-02-23 16:03:57 +01:00
Alexander A. Klimov 260eb5c475 CMakeLists.txt: provide sane defaults for which subsystems to build
not to have to explicitly disable particular ones in multiple locations.
2023-02-23 14:54:57 +01:00
Julian Brost bda8be343b
Merge pull request #9662 from Icinga/Repair#9627
Repair DSL Namespace values being constant broken in #9627
2023-02-20 16:35:36 +01:00
Alexander A. Klimov 11f7fb1928 CMakeLists.txt: don't surprise (i.e. terminate) CMake < 3.8 (on SLES 12.5)
with "set(CMAKE_CXX_STANDARD 17)" which it doesn't know.
2023-02-20 15:35:37 +01:00
Alexander A. Klimov 616ccc45fc Require C++17 2023-02-20 15:35:37 +01:00
Alexander A. Klimov 9e90b17eb4 Require GCC 7+ 2023-02-20 15:35:37 +01:00
Julian Brost d9767cff3f
Merge pull request #9675 from Icinga/third-party/nlohmann_json
Update third-party/nlohmann_json to v3.9.1
2023-02-20 15:31:32 +01:00
Julian Brost a84a0a3cee
Merge pull request #8302 from Icinga/bugfix/windows-systemroot-aliases-6259
Macros: support $env.ENV_VAR_NAME$
2023-02-20 13:09:15 +01:00
Alexander A. Klimov f2974c07cf Centralise default icinga.* and env.* macros 2023-02-17 15:33:36 +01:00
Julian Brost e4c34786e1
Merge pull request #9698 from Icinga/probot/sync-changelog/master/c3d8ed7092053e69c722cf3cef93bc0e6286f402
CHANGELOG.md: add v2.13.7
2023-02-17 13:51:03 +01:00
Alexander A. Klimov 9aa24cc867 CHANGELOG.md: add v2.13.7 2023-02-16 16:12:11 +00:00
Alexander Aleksandrovič Klimov c3d8ed7092
Merge pull request #9664 from Icinga/bugfix/selinux-readd-bools
Add role icinga2adm_r to SELinux policies
2023-02-16 17:11:57 +01:00
Alexander Aleksandrovič Klimov b4381c0bd3
Merge pull request #9677 from Icinga/docs-for-fedora
Docs: Fix instructions for Fedora
2023-02-15 19:47:32 +01:00
Henrik Triem 8173cf0760
Add icinga2adm_r role def before creating SELinux user&domain 2023-02-15 17:39:28 +01:00
Eric Lippmann 2e3b569f2c docs: Fix how to set up our Fedora repository
We do not provide `icinga-rpm-release` RPMs since ages.
2023-02-15 15:33:54 +01:00
Eric Lippmann ad27397f06
docs: Add missing "Install Icinga 2 on Fedora" heading 2023-02-15 10:14:01 +01:00
Julian Brost 737e812b69
Merge pull request #9673 from Icinga/181
Bump Boost to v1.81
2023-02-15 10:13:22 +01:00
Julian Brost 3023009804
Merge pull request #9653 from Icinga/9631
Setup all signal handlers with SA_RESTART flag
2023-02-14 17:55:09 +01:00
Alexander A. Klimov 34d0b942b9 Update third-party/nlohmann_json to v3.9.1
the latest version w/o Apache 2.0 licensed code which conflicts with GPL 2.
2023-02-14 16:19:44 +01:00
Julian Brost c7301a06b6
Merge pull request #9667 from Icinga/v1.1.1t
Windows: bump OpenSSL to v1.1.1t
2023-02-14 16:02:32 +01:00
Alexander A. Klimov 6347d7a008 Bump Boost to v1.81 2023-02-14 14:36:16 +01:00
Alexander A. Klimov 2ec62d0dd9 Windows: bump OpenSSL to v1.1.1t 2023-02-14 11:40:44 +01:00
Julian Brost 4d46d73f41
Merge pull request #9663 from Icinga/Al2Klimov-patch-3
Fix typo
2023-02-13 17:03:38 +01:00
Alexander Aleksandrovič Klimov fd5350d588
Fix typo 2023-02-13 13:00:28 +01:00
Julian Brost e074e892ce
Merge pull request #9658 from Icinga/unfreeze
Dictionary#*(): remove bool overrideFrozen if unused
2023-02-10 19:42:00 +01:00
Julian Brost 213f3f9444
Merge pull request #8389 from Icinga/feature/forbid-dep-cycles
Forbid dependency cycles
2023-02-10 17:26:04 +01:00
Alexander A. Klimov b2b49caf61 Macros: support $env.ENV_VAR_NAME$
refs #6259
2023-02-10 17:21:29 +01:00
Alexander A. Klimov f3f2c943c7 ScriptGlobal::Set(): don't explicitly give Namespace#Set() its default values 2023-02-10 15:55:10 +01:00
Alexander A. Klimov e61b380808 Call Namespace#Set(), not #SetFieldByName()
Namespace#SetFieldByName() calls #Set() anyway.
2023-02-10 15:53:30 +01:00
Alexander A. Klimov 683095a165 Make globals.Internal values non-const by default
That namespace is internal anyway.

Previous commit, icinga2 console:
Error: Constants must not be removed.

This commit fixes it.
2023-02-10 15:47:25 +01:00
Alexander A. Klimov 02df94a46a Repair DSL Namespace values being constant broken in #9627
master before #9627 (a0286e9c6):

<1> => namespace n { x = 42; x = 42 }
                             ^^^^^^
Constant must not be modified.
<2> =>

HEAD of #9627 (24b57f0d3):

<1> => namespace n { x = 42; x = 42 }
null
<2> =>
2023-02-10 15:43:01 +01:00
Julian Brost 0dd35bb960
Merge pull request #9657 from Icinga/shared_mutex-Dictionary
Use a shared_mutex for read `Dictionary` operations
2023-02-10 15:15:52 +01:00