icinga2/lib/base
Simon Murray e3645aa2f7 Fix hanging API connections
There was a problem identified where an upstream API connection was found hanging waiting
for a TLS handshake to complete.  Seeingly the TCP connection was ESTABLISHED locally but
not cleanly terminated remotely.  The Socket events layer never triggered the TLS handshake
oddly.  This however enables TCP keep alive packets to detect broken connections, raising
EPOLLERR and breaking the deadlock condition so that the agent will attempt to reconnect
at a later time.

fixes #12003

Signed-off-by: Gunnar Beutner <gunnar.beutner@netways.de>
2016-06-22 09:25:00 +02:00
..
CMakeLists.txt Make the socket event engine configurable 2016-04-18 14:38:59 +02:00
application-version.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
application.cpp Report failed reload attempts for the icinga check 2016-05-11 16:07:28 +02:00
application.hpp Report failed reload attempts for the icinga check 2016-05-11 16:07:28 +02:00
application.ti Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
array-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
array.cpp Improve performance for field accesses 2016-04-18 17:05:22 +02:00
array.hpp Improve performance for field accesses 2016-04-18 17:05:22 +02:00
boolean-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
boolean.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
boolean.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
configobject-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
configobject.cpp Add name attribute for the WorkQueue class 2016-06-14 09:08:04 +02:00
configobject.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
configobject.ti Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
configtype.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
configtype.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
configwriter.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
configwriter.hpp Use ConfigWriter class in repositoryutility.cpp 2016-02-09 15:59:19 +01:00
console.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
console.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
context.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
context.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
convert.cpp Fix unit tests for Convert::ToString 2016-06-16 15:32:29 +02:00
convert.hpp Fix incorrect formatting for some macro values 2016-06-16 15:14:35 +02:00
datetime-script.cpp Implement the DateTime class 2016-03-29 13:27:20 +02:00
datetime.cpp Implement the DateTime class 2016-03-29 13:27:20 +02:00
datetime.hpp Implement the DateTime class 2016-03-29 13:27:20 +02:00
datetime.ti Make sure timestamps are formatted as integers in macro strings 2016-06-21 11:29:12 +02:00
debug.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
debuginfo.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
debuginfo.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
dependencygraph.cpp Make sure the dependency graph is properly updated when adding and removing objects 2016-05-09 14:30:12 +02:00
dependencygraph.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
dictionary-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
dictionary.cpp Improve performance for field accesses 2016-04-18 17:05:22 +02:00
dictionary.hpp Improve performance for field accesses 2016-04-18 17:05:22 +02:00
exception.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
exception.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
fifo.cpp Fix incorrect memcpy() with overlapping buffers 2016-02-01 12:58:42 +01:00
fifo.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
filelogger.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
filelogger.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
filelogger.ti Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
function-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
function.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
function.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
functionwrapper.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
functionwrapper.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
i2-base.hpp Improve performance for locks and value conversions 2016-04-19 09:38:22 +02:00
initialize.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
initialize.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
json-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
json.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
json.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
loader.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
loader.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
logger.cpp Implement validation for the Logger#severity attribute 2016-04-21 13:50:47 +02:00
logger.hpp Implement validation for the Logger#severity attribute 2016-04-21 13:50:47 +02:00
logger.ti Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
math-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
netstring.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
netstring.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
networkstream.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
networkstream.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
number-script.cpp Fix incorrect formatting for some macro values 2016-06-16 15:14:35 +02:00
number.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
number.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
object-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
object.cpp Build fix for older boost versions 2016-04-18 17:21:45 +02:00
object.hpp Build fix for Windows 2016-04-19 14:48:13 +02:00
objectlock.hpp Improve performance for locks and value conversions 2016-04-19 09:38:22 +02:00
objecttype.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
objecttype.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
primitivetype.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
primitivetype.hpp Implement the DateTime class 2016-03-29 13:27:20 +02:00
process.cpp Use multiple threads for socket IO 2016-02-02 11:17:33 +01:00
process.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
registry.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
ringbuffer.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
ringbuffer.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
scriptframe.cpp Implement recursion limit for AST expressions which don't use a separate stack frame 2016-03-23 09:03:49 +01:00
scriptframe.hpp Implement recursion limit for AST expressions which don't use a separate stack frame 2016-03-23 09:03:49 +01:00
scriptglobal.cpp Fix permissions for temporary files 2016-02-24 11:00:44 +01:00
scriptglobal.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
scriptutils.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
scriptutils.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
serializer.cpp Build fix for GCC 2016-03-29 14:52:48 +02:00
serializer.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
singleton.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
socket.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
socket.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
socketevents-epoll.cpp Make the socket event engine configurable 2016-04-18 14:38:59 +02:00
socketevents-poll.cpp Make the socket event engine configurable 2016-04-18 14:38:59 +02:00
socketevents.cpp Fix error message for the EventEngine variable 2016-04-18 15:02:02 +02:00
socketevents.hpp Make the socket event engine configurable 2016-04-18 14:38:59 +02:00
stacktrace.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
stacktrace.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
statsfunction.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
statsfunction.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
stdiostream.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
stdiostream.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
stream.cpp Fix memory leak in Stream::Close 2016-02-03 13:02:49 +01:00
stream.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
streamlogger.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
streamlogger.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
streamlogger.ti Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
string-script.cpp Build fix for Win64 2016-03-29 07:54:41 +02:00
string.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
string.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
sysloglogger.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
sysloglogger.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
sysloglogger.ti Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
tcpsocket.cpp Fix hanging API connections 2016-06-22 09:25:00 +02:00
tcpsocket.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
threadpool.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
threadpool.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
timer.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
timer.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
tlsstream.cpp Improve error handling for TlsStream::Handshake 2016-05-11 10:09:54 +02:00
tlsstream.hpp Check the certificate name when reconnecting to an instance 2016-01-19 16:24:12 +01:00
tlsutility.cpp Implement support for subjectAltName in SSL certificates 2016-04-21 15:25:57 +02:00
tlsutility.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
type.cpp Implement the DateTime class 2016-03-29 13:27:20 +02:00
type.hpp Build fix for GCC 2016-03-29 14:52:48 +02:00
typetype-script.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
unix.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
unixsocket.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
unixsocket.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
utility.cpp Allow debugging of Utility::GetTime 2016-06-09 14:25:51 +02:00
utility.hpp Allow debugging of Utility::GetTime 2016-06-09 14:25:51 +02:00
value-operators.cpp Fix unit tests for Convert::ToString 2016-06-16 15:32:29 +02:00
value.cpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
value.hpp Make sure timestamps are formatted as integers in macro strings 2016-06-21 11:29:12 +02:00
visibility.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
win32.hpp Update copyright headers for 2016 2016-01-12 08:29:59 +01:00
workqueue.cpp Add name attribute for the WorkQueue class 2016-06-14 09:08:04 +02:00
workqueue.hpp Add name attribute for the WorkQueue class 2016-06-14 09:08:04 +02:00