summaryrefslogtreecommitdiff
path: root/modules
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 /modules
parent46acfd0490bee851ef82897fa6a7686f64b2544e (diff)
Ping uplink occasionally and disconnect if no pong is received
Diffstat (limited to 'modules')
-rw-r--r--modules/protocol/bahamut.cpp2
-rw-r--r--modules/protocol/inspircd20.cpp2
-rw-r--r--modules/protocol/plexus.cpp2
-rw-r--r--modules/protocol/rfc1459.cpp6
4 files changed, 12 insertions, 0 deletions
diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp
index 045045d03..fa41ebc39 100644
--- a/modules/protocol/bahamut.cpp
+++ b/modules/protocol/bahamut.cpp
@@ -488,6 +488,7 @@ class ProtoBahamut : public Module
rfc1459::Notice message_notice;
rfc1459::Part message_part;
rfc1459::Ping message_ping;
+ rfc1459::Pong message_pong;
rfc1459::Privmsg message_privmsg;
rfc1459::Quit message_quit;
rfc1459::SQuit message_squit;
@@ -558,6 +559,7 @@ class ProtoBahamut : public Module
, message_notice(this)
, message_part(this)
, message_ping(this)
+ , message_pong(this)
, message_privmsg(this)
, message_quit(this)
, message_squit(this)
diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp
index 14040d98e..96ada4666 100644
--- a/modules/protocol/inspircd20.cpp
+++ b/modules/protocol/inspircd20.cpp
@@ -1271,6 +1271,7 @@ class ProtoInspIRCd20 : public Module
rfc1459::Notice message_notice;
rfc1459::Part message_part;
rfc1459::Ping message_ping;
+ rfc1459::Pong message_pong;
rfc1459::Privmsg message_privmsg;
rfc1459::Quit message_quit;
rfc1459::Stats message_stats;
@@ -1370,6 +1371,7 @@ class ProtoInspIRCd20 : public Module
, message_notice(this)
, message_part(this)
, message_ping(this)
+ , message_pong(this)
, message_privmsg(this)
, message_quit(this)
, message_stats(this)
diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp
index 98654119f..5743ef50e 100644
--- a/modules/protocol/plexus.cpp
+++ b/modules/protocol/plexus.cpp
@@ -280,6 +280,7 @@ class ProtoPlexus : public Module
rfc1459::Notice message_notice;
rfc1459::Part message_part;
rfc1459::Ping message_ping;
+ rfc1459::Pong message_pong;
rfc1459::Privmsg message_privmsg;
rfc1459::Quit message_quit;
rfc1459::SQuit message_squit;
@@ -359,6 +360,7 @@ class ProtoPlexus : public Module
, message_notice(this)
, message_part(this)
, message_ping(this)
+ , message_pong(this)
, message_privmsg(this)
, message_quit(this)
, message_squit(this)
diff --git a/modules/protocol/rfc1459.cpp b/modules/protocol/rfc1459.cpp
index eee93571a..77f3dedc3 100644
--- a/modules/protocol/rfc1459.cpp
+++ b/modules/protocol/rfc1459.cpp
@@ -444,6 +444,12 @@ void Ping::Run(MessageSource &source, const std::vector<Anope::string> &params)
IRCD->Send<messages::Pong>(params.size() > 1 ? params[1] : Me->GetSID(), params[0]);
}
+void Pong::Run(MessageSource &source, const std::vector<Anope::string> &params)
+{
+ // Here to get rid of the "unknown command from server"
+ // Read timeout is reset on any uplink recv()
+}
+
void Privmsg::Run(MessageSource &source, const std::vector<Anope::string> &params)
{
const Anope::string &receiver = params[0];