Yonas Habteab 
							
						 
					 
					
						
						
						
						
							
						
						
							b9b3e7a925 
							
						 
					 
					
						
						
							
							ApiListener: Catch & supress clients runtime errors  
						
						
						
						
					 
					
						2024-09-03 16:49:02 +02:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
						
						
							
						
						
							02334c5f29 
							
						 
					 
					
						
						
							
							Make sure log file is reopened when ApiListener::ReplayLog() returns  
						
						
						
						
					 
					
						2024-09-03 16:49:02 +02:00 
						 
				 
			
				
					
						
							
							
								Yonas Habteab 
							
						 
					 
					
						
						
						
						
							
						
						
							5f2d31bf3c 
							
						 
					 
					
						
						
							
							Use Defer class for cleanup in ApiListener::ReplayLog()  
						
						
						
						
					 
					
						2024-09-03 16:49:01 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							9a0c7d7c75 
							
						 
					 
					
						
						
							
							ApiListener#ReplayLog(): stop reading files ASAP on send error  
						
						
						
						
					 
					
						2024-09-03 16:49:01 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							32f43c4873 
							
						 
					 
					
						
						
							
							ApiListener#Start(): auto-renew CA on its owner  
						
						... 
						
						
						
						otherwise it would expire. 
						
						
					 
					
						2023-12-18 17:04:59 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							b3dee0bb0a 
							
						 
					 
					
						
						
							
							ApiListener#RenewCert(): enable optional CA creation  
						
						
						
						
					 
					
						2023-12-18 17:04:59 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander Aleksandrovič Klimov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							000a776dfb 
							
						 
					 
					
						
						
							
							Built-in check command: ifw-api ( #9062 )  
						
						
						
						
					 
					
						2023-07-06 14:18:21 +02:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							af9d67b262 
							
						 
					 
					
						
						
							
							Merge pull request  #9726  from Icinga/43624b  
						
						... 
						
						
						
						Remove -and notify- expired downtimes immediately, not every 60s II 
						
						
					 
					
						2023-05-02 11:25:03 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							ba7102cae3 
							
						 
					 
					
						
						
							
							Explicitly stop started timers and wait for them  
						
						... 
						
						
						
						before permitting their parent objects' destruction.
For the cases where the handlers have raw pointers to these objects. 
						
						
					 
					
						2023-04-14 14:52:04 +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 
							
						 
					 
					
						
						
						
						
							
						
						
							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 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c51037725a 
							
						 
					 
					
						
						
							
							Merge pull request  #9466  from Icinga/flush-temp-files  
						
						... 
						
						
						
						Deduplicate and stabilize fragile filesystem transactions 
						
						
					 
					
						2023-02-02 16:29:11 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							b92fe23469 
							
						 
					 
					
						
						
							
							Deduplicate and stabilize fragile filesystem transactions  
						
						... 
						
						
						
						by using AtomicFile so they ensure all or nothing of a file gets replaced. 
						
						
					 
					
						2023-01-27 12:03:56 +01:00 
						 
				 
			
				
					
						
							
							
								Yonas Habteab 
							
						 
					 
					
						
						
						
						
							
						
						
							8bb0b857d8 
							
						 
					 
					
						
						
							
							ApiListener: Fix memory leak & group a || b && c correctly  
						
						
						
						
					 
					
						2023-01-26 09:10:49 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							83021f8231 
							
						 
					 
					
						
						
							
							CONTEXT: use << everywhere to unify usages  
						
						
						
						
					 
					
						2022-11-30 11:06:51 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							c9e4c016e0 
							
						 
					 
					
						
						
							
							Protect ApiListener#m_SSLContext with a mutex  
						
						
						
						
					 
					
						2022-04-11 11:02:45 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							e490883577 
							
						 
					 
					
						
						
							
							Renew certificates also periodically  
						
						
						
						
					 
					
						2022-04-11 11:02:39 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							3753f86c80 
							
						 
					 
					
						
						
							
							ApiListener#Start(): auto-renew own cert if CA owner  
						
						... 
						
						
						
						otherwise that particular cert would expire. 
						
						
					 
					
						2022-04-04 12:13:31 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							6d470a3ca5 
							
						 
					 
					
						
						
							
							Introduce ApiListener#RenewCert()  
						
						
						
						
					 
					
						2022-04-04 12:12:31 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							5f2e021390 
							
						 
					 
					
						
						
							
							Request certificate renewal also master2->master1  
						
						... 
						
						
						
						not only sat->master to prevent master2's certificate from expiring. 
						
						
					 
					
						2022-03-29 16:47:23 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							3bf180a341 
							
						 
					 
					
						
						
							
							Fix typo  
						
						... 
						
						
						
						refs #8766  
						
						
					 
					
						2021-10-08 10:27:35 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							80a1128ec7 
							
						 
					 
					
						
						
							
							Introduce SetupSslContext()  
						
						
						
						
					 
					
						2021-07-22 11:12:33 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander Aleksandrovič Klimov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							692f5aa615 
							
						 
					 
					
						
						
							
							Merge pull request  #8718  from Icinga/feature/tls-1.3  
						
						... 
						
						
						
						Support TLS 1.3 
						
						
					 
					
						2021-06-29 17:52:55 +02:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
						
						
							
						
						
							0e7a05ad7a 
							
						 
					 
					
						
						
							
							Support TLS 1.3  
						
						
						
						
					 
					
						2021-06-29 11:08:47 +02:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
						
						
							
						
						
							84d778580f 
							
						 
					 
					
						
						
							
							Add timeout for all new connections  
						
						... 
						
						
						
						This commit adds a timeout for both establishing new outgoing and incoming
connections. This timeout applies to everything until the connection is in a
state where either JsonRpcConnection or HttpServerConnection takes over. 
						
						
					 
					
						2021-06-23 11:21:42 +02:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							f346a9eea4 
							
						 
					 
					
						
						
							
							Merge pull request  #8652  from Icinga/bugfix/l_appversionint-0-8628  
						
						... 
						
						
						
						l_AppVersionInt: respect versions like r2.12.0, not just v2.12.0 
						
						
					 
					
						2021-06-07 16:07:04 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander Aleksandrovič Klimov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							ef8619f76b 
							
						 
					 
					
						
						
							
							Merge pull request  #8601  from Icinga/feature/replace-std-boost-bind-with-lambdas-7006  
						
						... 
						
						
						
						Feature: Replace std/boost::bind() with lambdas 
						
						
					 
					
						2021-03-18 17:56:13 +01:00 
						 
				 
			
				
					
						
							
							
								Yonas Habteab 
							
						 
					 
					
						
						
						
						
							
						
						
							43ba2da39c 
							
						 
					 
					
						
						
							
							Replace std/boost::bind() function with lambda expression  
						
						
						
						
					 
					
						2021-03-10 16:29:40 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							1c5f69683f 
							
						 
					 
					
						
						
							
							l_AppVersionInt: respect versions like r2.12.0, not just v2.12.0  
						
						... 
						
						
						
						refs #8628  
						
						
					 
					
						2021-02-25 15:31:07 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							c3388e9af6 
							
						 
					 
					
						
						
							
							Use std::mutex, not boost::mutex  
						
						
						
						
					 
					
						2021-02-03 09:54:57 +01:00 
						 
				 
			
				
					
						
							
							
								Yonas Habteab 
							
						 
					 
					
						
						
						
						
							
						
						
							d27f533e5f 
							
						 
					 
					
						
						
							
							ApiListener: Update the ssl cont after each accepting incoming connection  
						
						
						
						
					 
					
						2021-01-14 18:40:20 +01:00 
						 
				 
			
				
					
						
							
							
								Yonas Habteab 
							
						 
					 
					
						
						
						
						
							
						
						
							8eb4f2e062 
							
						 
					 
					
						
						
							
							ApiListener: Display log message if two nodes run on different versions  
						
						
						
						
					 
					
						2020-12-16 16:09:28 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander Aleksandrovič Klimov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							bee4ac7f7c 
							
						 
					 
					
						
						
							
							Merge pull request  #8040  from Icinga/feature/v1-actions-execute-command-8034  
						
						... 
						
						
						
						Add API endpoint: /v1/actions/execute-command 
						
						
					 
					
						2020-12-02 10:53:24 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							1343fd538d 
							
						 
					 
					
						
						
							
							Start ApiListener#SyncClient() in the thread pool  
						
						... 
						
						
						
						... not hosting the coroutines not to block them.
Otherwise a large replay log would block messages sending
until the peer disconnects us. 
						
						
					 
					
						2020-11-24 17:25:43 +01:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c154d4d50e 
							
						 
					 
					
						
						
							
							Merge pull request  #8466  from Icinga/feature/one-connection  
						
						... 
						
						
						
						ApiListener#NewClientHandlerInternal(): reject connections from already connected endpoints 
						
						
					 
					
						2020-11-24 16:33:15 +01:00 
						 
				 
			
				
					
						
							
							
								Julian Brost 
							
						 
					 
					
						
						
						
						
							
						
						
							cb476172ec 
							
						 
					 
					
						
						
							
							Fix cluster message routing for global zones  
						
						... 
						
						
						
						RelayMessageOne used to relay the message only to one other endpoint for
other zones, which is fine, as long as the target zone is a child/parent
zone but breaks if the target zone is a global one. In this case, the
message has to be forwarded within the local zone as well as to one node
in each child zone. 
						
						
					 
					
						2020-11-09 15:43:43 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander Aleksandrovič Klimov 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							1e281b060a 
							
						 
					 
					
						
						
							
							Merge pull request  #7952  from Icinga/fix/SO_REUSEPORT-optional  
						
						... 
						
						
						
						apilistener: Make SO_REUSEPORT optional 
						
						
					 
					
						2020-10-29 15:56:56 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							bb851b0558 
							
						 
					 
					
						
						
							
							Merge branch 'master' into feature/v1-actions-execute-command-8034  
						
						
						
						
					 
					
						2020-10-28 18:37:08 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							38110e55d3 
							
						 
					 
					
						
						
							
							ApiListener#NewClientHandlerInternal(): reject connections from already connected endpoints  
						
						
						
						
					 
					
						2020-10-26 15:20:58 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							40ac05c182 
							
						 
					 
					
						
						
							
							Introduce Endpoint#capabilities  
						
						... 
						
						
						
						refs #8034  
						
						
					 
					
						2020-10-19 13:04:20 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							645dcbdc9e 
							
						 
					 
					
						
						
							
							Introduce Endpoint#icinga_version  
						
						... 
						
						
						
						... and set it to e.g. 21200 via icinga::Hello. 
						
						
					 
					
						2020-07-07 18:24:06 +02:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							647f1547a9 
							
						 
					 
					
						
						
							
							Generalize I/O timeout emulation  
						
						
						
						
					 
					
						2020-06-17 10:31:40 +02:00 
						 
				 
			
				
					
						
							
							
								Markus Frosch 
							
						 
					 
					
						
						
						
						
							
						
						
							b5fa7569f2 
							
						 
					 
					
						
						
							
							apilistener: Make SO_REUSEPORT optional  
						
						
						
						
					 
					
						2020-03-31 18:03:59 +02:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							d99f76bdae 
							
						 
					 
					
						
						
							
							Merge pull request  #7767  from Icinga/bugfix/replay-log-windows-rename  
						
						... 
						
						
						
						Ensure that log replay files are properly renamed on Windows 
						
						
					 
					
						2020-02-10 11:42:25 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							35c9f2e7b3 
							
						 
					 
					
						
						
							
							Close connections w/o sucessful TLS handshakes during 10s  
						
						... 
						
						
						
						refs #7805  
						
						
					 
					
						2020-02-05 15:53:56 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Friedrich 
							
						 
					 
					
						
						
						
						
							
						
						
							0da46c1d4b 
							
						 
					 
					
						
						
							
							Ensure that log replay files are properly renamed on Windows  
						
						... 
						
						
						
						rename() without _unlink() before doesn't work on Windows.
This commits also adds an error message which was swallowed
previously. 
						
						
					 
					
						2020-01-20 11:41:43 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Insel 
							
						 
					 
					
						
						
						
						
							
						
						
							859658ab98 
							
						 
					 
					
						
						
							
							Fix TLS context copies in ApiListener  
						
						... 
						
						
						
						This avoids copying the TLS context in the ApiListener class and removes
the obsolete variable.
This is a follow-up from #7654  
						
						
					 
					
						2019-11-29 16:03:38 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Insel 
							
						 
					 
					
						
						
						
						
							
						
						
							8431ea52ee 
							
						 
					 
					
						
						
							
							Make SSL context const again  
						
						... 
						
						
						
						Turns out that the switch to the class member variable inside the lambda
expression is sufficient to fix the issue. 
						
						
					 
					
						2019-11-25 23:42:32 +01:00 
						 
				 
			
				
					
						
							
							
								Michael Insel 
							
						 
					 
					
						
						
						
						
							
						
						
							016a6c3f25 
							
						 
					 
					
						
						
							
							Fix ApiListener const SSL context  
						
						... 
						
						
						
						This makes the SSL context in ApiListener::SpawnCoroutine non-const to
address an issue when an agent recieves an signed certificate from the
master and tries to update the SSL context. This also uses the class
member variable which is captured by `this` in the lamda expression.
fixes  #7650  
						
						
					 
					
						2019-11-25 22:21:09 +01:00 
						 
				 
			
				
					
						
							
							
								Alexander A. Klimov 
							
						 
					 
					
						
						
						
						
							
						
						
							ba1ce9c853 
							
						 
					 
					
						
						
							
							Replace std::shared_ptr<boost::asio::ssl::context> with Shared<boost::asio::ssl::context>::Ptr  
						
						
						
						
					 
					
						2019-10-21 16:12:46 +02:00