summaryrefslogtreecommitdiff
path: root/include/uplink.h
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2017-06-22 17:59:58 -0400
committerAdam <Adam@anope.org>2017-06-22 17:59:58 -0400
commit2b6c5833bb6cd6b1e21bb66a0ebbc6a6e3e86767 (patch)
tree4f3b8b2dd11e2d80c62db732d0e803978ed440c8 /include/uplink.h
parent46acfd0490bee851ef82897fa6a7686f64b2544e (diff)
Ping uplink occasionally and disconnect if no pong is received
Diffstat (limited to 'include/uplink.h')
-rw-r--r--include/uplink.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/include/uplink.h b/include/uplink.h
index 8cb8c8b20..be2675931 100644
--- a/include/uplink.h
+++ b/include/uplink.h
@@ -21,6 +21,7 @@
#include "sockets.h"
#include "protocol.h"
+#include "timers.h"
namespace Uplink
{
@@ -40,13 +41,22 @@ namespace Uplink
IRCMessage message(Me, command, std::forward<Args>(args)...);
SendMessage(message);
}
+
+ class PingTimer : public Timer
+ {
+ public:
+ PingTimer(time_t);
+ void Tick(time_t) override;
+ };
}
/* This is the socket to our uplink */
class UplinkSocket : public ConnectionSocket, public BufferedSocket
{
public:
- bool error;
+ bool error = false;
+ time_t last_read = 0;
+ bool pinged = false;
UplinkSocket();
~UplinkSocket();
bool ProcessRead() override;