icinga2/lib/remote
Yonas Habteab 1c34610a78 JsonRpcConnection: Don't read any data on shutdown
When the `Desconnect()` method is called, clients are not disconnected
immediately. Instead, a new coroutine is spawned using the same strand
as the other coroutines. This coroutine calls `async_shutdown` on the
TCP socket, which might be blocking. However, in order not to block
indefintely, the `Timeout` class cancels all operations on the socket
after `10` seconds. Though, the timeout does not trigger the handler
immediately; it creates spawns another coroutine using the same strand
as in the `JsonRpcConnection` class. This can cause unexpected delays if
e.g. `HandleIncomingMessages` gets resumed before the coroutine from the
timeout class. Apart from that, the coroutine for writing messages uses
the same condition, making the two symmetrical.
2024-10-31 17:09:13 +01:00
..
CMakeLists.txt /v1/debug/malloc_info: call malloc_info(3) if available 2024-08-09 12:59:25 +02:00
actionshandler.cpp Merge pull request #7958 from Icinga/bugfix/api-500-404-7956 2023-01-24 15:08:17 +01:00
actionshandler.hpp AuthenticatedApiUser name refactor 2020-07-03 11:17:36 +02:00
apiaction.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
apiaction.hpp Clarify difference between API actions and functions in their docstrings 2020-11-12 14:23:41 +01:00
apifunction.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
apifunction.hpp Clarify difference between API actions and functions in their docstrings 2020-11-12 14:23:41 +01:00
apilistener-authority.cpp Unify Application::GetStartTime() and drop GetMainTime() 2020-02-11 17:26:15 +01:00
apilistener-configsync.cpp ApiListener: Process cluster config updates sequentially 2024-06-13 11:26:19 +02:00
apilistener-filesync.cpp Fix config sync after freezing namespaces 2023-02-01 12:29:47 +01:00
apilistener.cpp ApiListener: Log error context only once 2024-10-30 16:55:13 +01:00
apilistener.hpp Revert "Process `config::update/delete` cluster events gracefully" 2024-03-07 17:17:17 +01:00
apilistener.ti Introduce DEFAULT_CONNECT_TIMEOUT 2021-07-27 21:57:02 +02:00
apiuser.cpp Fix file endings 2023-05-17 18:05:13 +02:00
apiuser.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
apiuser.ti Allow to create api user w/ password 2020-10-09 20:15:44 +02:00
configfileshandler.cpp De-couple package and stage name validation 2021-08-02 15:40:14 +02:00
configfileshandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
configobjectslock.cpp Introduce RAII style `ObjectNameLock` class 2024-06-13 11:26:19 +02:00
configobjectslock.hpp Introduce RAII style `ObjectNameLock` class 2024-06-13 11:26:19 +02:00
configobjectutility.cpp `ConfigObjectUtility#CreateObject()`: Use `Defer` for config path cleanup 2024-06-13 11:26:19 +02:00
configobjectutility.hpp Just get paths from existing objects for modification and deletion 2022-11-28 16:39:16 +01:00
configpackageshandler.cpp De-couple package and stage name validation 2021-08-02 15:40:14 +02:00
configpackageshandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
configpackageutility.cpp ConfigPackageUtility: Don't reset ongoing package updates on config validation success and process is going to be reloaded 2022-03-30 09:42:22 +02:00
configpackageutility.hpp ConfigPackageUtility: Don't reset ongoing package updates on config validation success and process is going to be reloaded 2022-03-30 09:42:22 +02:00
configstageshandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
configstageshandler.hpp ConfigStagesHandler: Don't allow concurrent package updates anymore 2022-03-30 09:42:22 +02:00
consolehandler.cpp Prevent calls to command API while the configuration is reloading. 2023-08-09 08:45:04 +02:00
consolehandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
createobjecthandler.cpp Don't allow to modify/create/delete an object concurrently 2024-06-13 11:26:19 +02:00
createobjecthandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
deleteobjecthandler.cpp Don't allow to modify/create/delete an object concurrently 2024-06-13 11:26:19 +02:00
deleteobjecthandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
endpoint.cpp Use std::mutex, not boost::mutex 2021-02-03 09:54:57 +01:00
endpoint.hpp Use std::mutex, not boost::mutex 2021-02-03 09:54:57 +01:00
endpoint.ti Introduce Endpoint#capabilities 2020-10-19 13:04:20 +02:00
eventqueue.cpp Fix compiler warnings don't move local variables 2022-02-22 17:51:43 +01:00
eventqueue.hpp Use std::mutex, not boost::mutex 2021-02-03 09:54:57 +01:00
eventshandler.cpp EventsHandler: Drop superfluous `CpuBoundWork` usage 2024-02-09 12:00:50 +01:00
eventshandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
filterutility.cpp FilterUtility::GetFilterTargets(): don't run filter for specific object(s) for all objects 2023-12-13 16:02:50 +01:00
filterutility.hpp FilterUtility: Replace some nested raw pointers by our `unique_ptr<X>*` 2022-11-28 14:50:54 +01:00
httphandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
httphandler.hpp Quality: Purge old HTTP code in lib/remote 2019-05-24 15:50:43 +02:00
httpserverconnection.cpp HttpServerConnection: Drop yet another superfluous `CpuBoundWork` usage 2024-09-05 15:10:14 +02:00
httpserverconnection.hpp Replace std::shared_ptr<AsioTlsStream> with Shared<AsioTlsStream>::Ptr 2019-10-21 16:12:35 +02:00
httputility.cpp Use content_length method for setting the Content-Length header 2020-12-22 16:27:38 +01:00
httputility.hpp Quality: Purge old HTTP code in lib/remote 2019-05-24 15:50:43 +02:00
i2-remote.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
infohandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
infohandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
jsonrpc.cpp Fix compiler warnings don't move local variables 2022-02-22 17:51:43 +01:00
jsonrpc.hpp Replace std::shared_ptr<AsioTlsStream> with Shared<AsioTlsStream>::Ptr 2019-10-21 16:12:35 +02:00
jsonrpcconnection-heartbeat.cpp Fix file endings 2023-05-17 18:05:13 +02:00
jsonrpcconnection-pki.cpp RequestCertificateHandler(): also renew if CA needs a renewal 2023-12-18 15:28:11 +01:00
jsonrpcconnection.cpp JsonRpcConnection: Don't read any data on shutdown 2024-10-31 17:09:13 +01:00
jsonrpcconnection.hpp JsonRpcConnection: Drop unused `m_NextHeartbeat` variable 2024-10-30 14:31:48 +01:00
mallocinfohandler.cpp /v1/debug/malloc_info: call malloc_info(3) if available 2024-08-09 12:59:25 +02:00
mallocinfohandler.hpp /v1/debug/malloc_info: call malloc_info(3) if available 2024-08-09 12:59:25 +02:00
messageorigin.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
messageorigin.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
modifyobjecthandler.cpp Don't allow to modify/create/delete an object concurrently 2024-06-13 11:26:19 +02:00
modifyobjecthandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
objectqueryhandler.cpp FilterUtility: Replace some nested raw pointers by our `unique_ptr<X>*` 2022-11-28 14:50:54 +01:00
objectqueryhandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
pkiutility.cpp Fix file endings 2023-05-17 18:05:13 +02:00
pkiutility.hpp CLI: Allow to list removed CSRs with 'ca list' 2019-06-07 10:33:55 +02:00
statushandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
statushandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
templatequeryhandler.cpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
templatequeryhandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
typequeryhandler.cpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
typequeryhandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
url-characters.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
url.cpp Fix file endings 2023-05-17 18:05:13 +02:00
url.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
variablequeryhandler.cpp Fix file endings 2023-05-17 18:05:13 +02:00
variablequeryhandler.hpp HttpServerConnection: encapsulate streaming start indicator 2019-04-02 17:37:29 +02:00
zone.cpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
zone.hpp Replace Copyright header with a short version, part I 2019-02-25 14:48:22 +01:00
zone.ti Don't allow to change object parent,host/service_name at runtime 2022-09-09 18:26:28 +02:00