Julian Brost 
							
						 
					 
					
						
						
						
						
							
						
						
							5404143dee 
							
						 
					 
					
						
						
							
							Ensure consistent mktime() DST behavior across different implementations  
						
						... 
						
						
						
						There are inputs to mktime() where the behavior is not specified and there's
also no single obviously correct behavior. In particular, this affects how
auto-detection of whether DST is in effect is done when tm_isdst = -1 is set
and the time specified does not exist at all or exists twice on that day.
If different implementations are used within an Icinga 2 cluster, that can lead
to inconsistent behavior because different nodes may interpret the same
TimePeriod differently.
This commit introduces a wrapper to mktime(), namely Utility::NormalizeTm()
that implements the behavior provided by glibc. The choice for glibc's behavior
is pretty arbitrary, it was simply picked because most systems that are
officially/fully supported use it (with the only exception being Windows), so
this should give the least possible amount of user-visible changes.
As part of this commit, the closely related helper function mktime_const() is
also moved to Utility::TmToTimestamp() and made a wrapper around the newly
introduced NormalizeTm(). 
						
						
					 
					
						2025-04-28 13:38:55 +02:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
						
						
							
						
						
							39ae2e8ca4 
							
						 
					 
					
						
						
							
							Utility::FormatDateTime(): provide an overload for tm*  
						
						... 
						
						
						
						This allows the function to be used both with a double timestamp or a pointer
to a tm struct. With this, a similar implementation inside the tests can simply
use our regular function. 
						
						
					 
					
						2024-08-23 12:48:50 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							0367c9e099 
							
						 
					 
					
						
						
							
							Remove unused Utility::CreateTempFile()  
						
						
						
						
					 
					
						2023-01-27 12:03:59 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							600fb0e3c2 
							
						 
					 
					
						
						
							
							Introduce AtomicFile  
						
						
						
						
					 
					
						2022-07-28 18:00:37 +02:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
						
						
							
						
						
							97d6876803 
							
						 
					 
					
						
						
							
							Utility: add a function to truncate strings while avoiding collisions  
						
						
						
						
					 
					
						2021-06-17 16:21:01 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander Aleksandrovič Klimov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							4063e39d5f 
							
						 
					 
					
						
						
							
							Merge pull request  #8515  from Icinga/feature/update-ssl-context-after-accepting-new-connection-8501  
						
						... 
						
						
						
						API: Update the ssl context after each accepting incoming connection 
						
						
					 
					
						2021-01-15 11:21:36 +01:00 
						 
				 
			
				
					
						
							
							
								Yonas Habteab 
							
						 
					 
					
						
						
						
						
							
						
						
							057254695d 
							
						 
					 
					
						
						
							
							Utility: Introduce new helper function Utility::GetFileCreationTime()  
						
						
						
						
					 
					
						2021-01-14 18:39:14 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							26c944125b 
							
						 
					 
					
						
						
							
							Close FDs based on /proc/self/fd  
						
						... 
						
						
						
						... not to waste time with close(2)ing RLIMIT_NOFILE-3 non-existing FDs.
Newer kernel = higher RLIMIT_NOFILE = more time wasted
refs #8437  
						
						
					 
					
						2021-01-12 17:32:28 +01:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
						
						
							
						
						
							c30d8ff373 
							
						 
					 
					
						
						
							
							Remove Utility::GetEnv from header  
						
						... 
						
						
						
						It is never used and not even implemented anywhere, probably a leftover. 
						
						
					 
					
						2020-10-20 12:19:15 +02:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							96f62d2d34 
							
						 
					 
					
						
						
							
							Add Utility::ParseVersion() and unit tests  
						
						... 
						
						
						
						This now uses a regex to extract the short version
similar to how Icinga Web 2 does it.
Additional unit tests prove the rule. 
						
						
					 
					
						2019-08-14 11:22:55 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							5afef1015d 
							
						 
					 
					
						
						
							
							Replace unlink() with boost::filesystem::remove()  
						
						... 
						
						
						
						refs #7101  
						
						
					 
					
						2019-04-25 09:53:02 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							5a17722c1f 
							
						 
					 
					
						
						
							
							Replace _unlink() + rename() with boost::filesystem::rename()  
						
						... 
						
						
						
						refs #7101  
						
						
					 
					
						2019-04-25 09:53:02 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							af78cd6050 
							
						 
					 
					
						
						
							
							Use Boost.Filesystem  
						
						... 
						
						
						
						refs #7101  
						
						
					 
					
						2019-04-25 09:53:01 +02:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							d14a88235d 
							
						 
					 
					
						
						
							
							Replace Copyright header with a short version, part I  
						
						... 
						
						
						
						CLion -> replace in path 
						
						
					 
					
						2019-02-25 14:48:22 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							9558ebc0f4 
							
						 
					 
					
						
						
							
							Secure ApiUser::GetByAuthHeader() against timing attacks  
						
						
						
						
					 
					
						2019-02-22 16:59:36 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							f3cd3eb870 
							
						 
					 
					
						
						
							
							DSL: Implement getenv()  
						
						... 
						
						
						
						This patch also restores Utility::GetFromEnvironment()
and replaces the hardcoded `getenv()` calls. 
						
						
					 
					
						2018-11-19 18:11:16 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							dab53448bc 
							
						 
					 
					
						
						
							
							icinga.com: Update *.{h,c}pp  
						
						
						
						
					 
					
						2018-10-18 09:27:04 +02:00 
						 
				 
			
				
					
						
							
							
								Jean Flach 
							
						 
					 
					
						
						
						
						
							
						
						
							ed4e008e79 
							
						 
					 
					
						
						
							
							Rework sysconfig file  
						
						... 
						
						
						
						The sysconfig file now only contains the defaults as comments, changes
made there are given to the init.d script, prepare-dirs, safe-reload and
Icinga 2 itself. If nothing is set in the sysconfig file (as is the
default as all lines are commented out) the defaults are used.
fixes  #6255  
						
						
					 
					
						2018-05-23 15:18:42 +02:00 
						 
				 
			
				
					
						
							
							
								Jean Flach 
							
						 
					 
					
						
						
						
						
							
						
						
							c8c193a9d8 
							
						 
					 
					
						
						
							
							Remove need for RunAsUser/Group  
						
						... 
						
						
						
						They are now read form the sysconfig file which is owned by root 
						
						
					 
					
						2018-02-20 14:16:43 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							ac155d1dda 
							
						 
					 
					
						
						
							
							Apply clang-tidy fix 'modernize-redundant-void-arg'  
						
						
						
						
					 
					
						2018-01-04 12:24:57 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							90496b5456 
							
						 
					 
					
						
						
							
							Build libraries as static libraries  
						
						
						
						
					 
					
						2018-01-02 23:29:48 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							e08da4267b 
							
						 
					 
					
						
						
							
							Merge pull request  #5930  from Icinga/feature/boost-function  
						
						... 
						
						
						
						Replace boost::function with std::function 
						
						
					 
					
						2018-01-02 13:46:23 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Insel 
							
						 
					 
					
						
						
						
						
							
						
						
							158ae2188e 
							
						 
					 
					
						
						
							
							Change copyright header for 2018  
						
						
						
						
					 
					
						2018-01-02 12:08:55 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							dac71b3960 
							
						 
					 
					
						
						
							
							Replace boost::function with std::function  
						
						
						
						
					 
					
						2018-01-02 08:55:50 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							858873b940 
							
						 
					 
					
						
						
							
							Replace boost::bind/boost::function with std::bind/std::function  
						
						
						
						
					 
					
						2017-11-27 15:15:11 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							b7caf0820d 
							
						 
					 
					
						
						
							
							Ensure that *.icinga.com is used everywhere  
						
						... 
						
						
						
						fixes  #13897 
fixes  #13277  
					
						2017-01-10 17:19:12 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							aeaca5e803 
							
						 
					 
					
						
						
							
							Revert "Fix incorrect detection of the 'Concurrency' variable"  
						
						... 
						
						
						
						This reverts commit 585f0537d244fb8fb229924f9e7c5c8478bb2a92.
refs #12456  
						
						
					 
					
						2016-08-19 11:58:52 +02:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							585f0537d2 
							
						 
					 
					
						
						
							
							Fix incorrect detection of the 'Concurrency' variable  
						
						... 
						
						
						
						fixes  #12456  
					
						2016-08-17 09:20:05 +02:00 
						 
				 
			
				
					
						
							
							
								Rune Darrud 
							
						 
					 
					
						
						
						
						
							
						
						
							5c0b3c58bd 
							
						 
					 
					
						
						
							
							Do not escape backslashes and separators twice  
						
						... 
						
						
						
						fixes  #12227 
Signed-off-by: Gunnar Beutner <gunnar.beutner@netways.de> 
					
						2016-08-17 06:10:41 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Frosch 
							
						 
					 
					
						
						
						
						
							
						
						
							a5abe1a972 
							
						 
					 
					
						
						
							
							Allow debugging of Utility::GetTime  
						
						... 
						
						
						
						So we can run unit tests that expect a certain behavior based on time.
When Icinga 2 is compiled with I2_DEBUG one can use Utility::SetTime to
override the current system time, and lock it to this value.
fixes  #11875  
						
						
					 
					
						2016-06-09 14:25:51 +02:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							327d12295c 
							
						 
					 
					
						
						
							
							Implement support for upgrading NSIS-based installations  
						
						... 
						
						
						
						refs #11449  
						
						
					 
					
						2016-04-01 08:42:58 +02:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							6bf3225e84 
							
						 
					 
					
						
						
							
							Implement support for running custom install/uninstall actions  
						
						... 
						
						
						
						refs #11449  
						
						
					 
					
						2016-03-31 14:53:54 +02:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							47c5425137 
							
						 
					 
					
						
						
							
							Fix permissions for temporary files  
						
						... 
						
						
						
						fixes  #11212 
fixes  #11211  
					
						2016-02-24 11:00:44 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							4cb5b97e52 
							
						 
					 
					
						
						
							
							Fix unique creation of temp files  
						
						... 
						
						
						
						fixes  #10948  
					
						2016-02-23 12:30:59 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							599929b0f6 
							
						 
					 
					
						
						
							
							Update copyright headers for 2016  
						
						
						
						
					 
					
						2016-01-12 08:29:59 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							fba0b493cd 
							
						 
					 
					
						
						
							
							Make sure that all strings in the IDO database are UTF8-encoded  
						
						... 
						
						
						
						fixes  #10554  
					
						2015-12-10 12:26:19 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							2320f7a32a 
							
						 
					 
					
						
						
							
							Implement Platform* global variables  
						
						... 
						
						
						
						refs #10693  
						
						
					 
					
						2015-11-23 13:10:25 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							9ea51aa86e 
							
						 
					 
					
						
						
							
							Use non-blocking open() for the command pipe  
						
						... 
						
						
						
						fixes  #10410  
					
						2015-11-09 20:39:26 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							06a0f182a5 
							
						 
					 
					
						
						
							
							Implement the cidr_match function  
						
						... 
						
						
						
						fixes  #10354  
					
						2015-10-14 10:14:01 +02:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							2484016c54 
							
						 
					 
					
						
						
							
							Fix crash in RepositoryUtility::AddObject  
						
						... 
						
						
						
						fixes  #10326  
					
						2015-10-13 09:15:06 +02:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							08ccb4e323 
							
						 
					 
					
						
						
							
							Build fix  
						
						... 
						
						
						
						refs #10245  
						
						
					 
					
						2015-09-30 11:05:20 +02:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							254c076dd4 
							
						 
					 
					
						
						
							
							Fix incorrectly escaped arguments for CreateProcess  
						
						... 
						
						
						
						fixes  #10245  
					
						2015-09-30 10:56:31 +02:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							7eca257784 
							
						 
					 
					
						
						
							
							Fix return value of Utility::MkDir/MkDirP  
						
						... 
						
						
						
						None as there are exceptions thrown.
fixes  #9689  
						
						
					 
					
						2015-08-24 15:11:49 +02:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							fca7a33aac 
							
						 
					 
					
						
						
							
							Implement config file management for the API  
						
						... 
						
						
						
						refs #9083 
fixes  #9102 
fixes  #9103 
fixes  #9104 
fixes  #9705  
						
						
					 
					
						2015-07-23 17:57:24 +02:00 
						 
				 
			
				
					
						
							
							
								Jean-Marcel Flach 
							
						 
					 
					
						
						
						
						
							
						
						
							a98d2f585d 
							
						 
					 
					
						
						
							
							Implement URL parser  
						
						... 
						
						
						
						fixes  #9470  
					
						2015-07-07 15:33:19 +02:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							111b154a6d 
							
						 
					 
					
						
						
							
							Remove unused #includes  
						
						
						
						
					 
					
						2015-03-29 00:03:47 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							3e08f2e0b5 
							
						 
					 
					
						
						
							
							Make order for deferred initializers deterministic  
						
						... 
						
						
						
						refs #8791  
						
						
					 
					
						2015-03-18 13:24:31 +01:00 
						 
				 
			
				
					
						
							
							
								Gunnar Beutner 
							
						 
					 
					
						
						
						
						
							
						
						
							7c31654552 
							
						 
					 
					
						
						
							
							Remove the return type for Utility::LoadExtensionLibrary  
						
						
						
						
					 
					
						2015-03-03 07:19:34 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							24852e05c7 
							
						 
					 
					
						
						
							
							Move ValidateMacroString into the MacroProcessor class  
						
						... 
						
						
						
						refs #7311  
						
						
					 
					
						2015-02-11 16:14:59 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							8ca57cba03 
							
						 
					 
					
						
						
							
							Add macro config validator for command args, env, custom attr, perfdata templates  
						
						... 
						
						
						
						fixes  #7311  
					
						2015-02-11 15:32:10 +01:00