Don't send Heartbeat messages when connection is unauthenticated #7698
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Do not send Heartbeat messages when the connection is not authenticated.
Context
When a new JSON-RPC connection is established we start to sent heartbeat messages, even if the connection is not authenticated (e.g. certificate not signed). If the connection stalls for some reason and the answer to the heartbeat message is not received in time we disconnect the client.
icinga2/lib/remote/jsonrpcconnection-heartbeat.cpp
Lines 30 to 35 in 202e90b
Problem
On unauthenticated connections we don't set the
m_Endpoint
variable, only when authenticated. In the log message from above we usem_Endpoint
variable which will result in a crash.icinga2/lib/remote/jsonrpcconnection.cpp
Lines 45 to 46 in 202e90b
I think it is not necessary to send heartbeat messages on unauthenticated connections. But I may not see the full scope here. I'll leave this PR as draft and maybe @dnsmichi and @Al2Klimov can have a look? :-)
This may have an influence on #7569 and #7687.