mirror of
https://github.com/znc/znc.git
synced 2026-05-08 22:34:45 +02:00
route_replies: Improve the timeout handling
One can now disable the timeout messages with '/msg *route_replies silent yes' and the message shown on timeout sounds less grave. It would be best if we could fix all of the timeout bugs, but most of the reports we got lately sound like they were caused by cosmic rays or something... git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1660 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
+35
-11
@@ -256,18 +256,19 @@ public:
|
||||
{
|
||||
// The timer will be deleted after this by the event loop
|
||||
|
||||
PutModule("This module hit a timeout. This is a BUG!");
|
||||
if (GetNV("silent_timeouts") != "yes") {
|
||||
PutModule("This module hit a timeout which is possibly a bug.");
|
||||
PutModule("Use \"silent yes\" to disable this message.");
|
||||
PutModule("Last request: " + m_sLastRequest);
|
||||
PutModule("Expected replies: ");
|
||||
|
||||
PutModule("Last request: " + m_sLastRequest);
|
||||
|
||||
PutModule("Expected replies: ");
|
||||
|
||||
for (size_t i = 0; m_pReplies[i].szReply != NULL; i++) {
|
||||
if (m_pReplies[i].bLastResponse)
|
||||
PutModule(m_pReplies[i].szReply +
|
||||
CString(" (last)"));
|
||||
else
|
||||
PutModule(m_pReplies[i].szReply);
|
||||
for (size_t i = 0; m_pReplies[i].szReply != NULL; i++) {
|
||||
if (m_pReplies[i].bLastResponse)
|
||||
PutModule(m_pReplies[i].szReply +
|
||||
CString(" (last)"));
|
||||
else
|
||||
PutModule(m_pReplies[i].szReply);
|
||||
}
|
||||
}
|
||||
|
||||
m_pDoing = NULL;
|
||||
@@ -331,6 +332,29 @@ private:
|
||||
it->second.erase(it->second.begin());
|
||||
}
|
||||
|
||||
virtual void OnModCommand(const CString& sCommand) {
|
||||
const CString sCmd = sCommand.Token(0);
|
||||
const CString sArgs = sCommand.Token(1, true);
|
||||
|
||||
if (sCmd.Equals("silent")) {
|
||||
if (sArgs.Equals("yes")) {
|
||||
SetNV("silent_timeouts", "yes");
|
||||
PutModule("Disabled timeout messages");
|
||||
} else if (sArgs.Equals("no")) {
|
||||
DelNV("silent_timeouts");
|
||||
PutModule("Enabled timeout messages");
|
||||
} else if (sArgs.empty()) {
|
||||
if (GetNV("silent_timeouts") == "yes")
|
||||
PutModule("Timeout messages are disabled");
|
||||
else
|
||||
PutModule("Timeout message are enabled");
|
||||
} else
|
||||
PutModule("Invalid argument");
|
||||
} else {
|
||||
PutModule("Available commands: silent [yes/no], silent");
|
||||
}
|
||||
}
|
||||
|
||||
CClient *m_pDoing;
|
||||
const struct reply *m_pReplies;
|
||||
requestQueue m_vsPending;
|
||||
|
||||
Reference in New Issue
Block a user