aboutsummaryrefslogtreecommitdiff
path: root/src/modules/m_testnet.cpp
diff options
context:
space:
mode:
authorGravatar danieldg2009-09-27 00:22:29 +0000
committerGravatar danieldg2009-09-27 00:22:29 +0000
commit934d9a6a184b7a8600fcda30e012ba6f29f17b64 (patch)
tree44edb8dc4551777fcbdb73ef1a28e9b9d44bd9a6 /src/modules/m_testnet.cpp
parentCompile fixes and message updates (diff)
SendQ bugfixes
Fix DoWrite running on errored sockets Add testnet module for sendq and shutdown testing Prevent DoWrite from trying to write when writes are blocking git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11768 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/modules/m_testnet.cpp')
-rw-r--r--src/modules/m_testnet.cpp66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/modules/m_testnet.cpp b/src/modules/m_testnet.cpp
new file mode 100644
index 000000000..a4bdfc561
--- /dev/null
+++ b/src/modules/m_testnet.cpp
@@ -0,0 +1,66 @@
+/* +------------------------------------+
+ * | Inspire Internet Relay Chat Daemon |
+ * +------------------------------------+
+ *
+ * InspIRCd: (C) 2002-2009 InspIRCd Development Team
+ * See: http://wiki.inspircd.org/Credits
+ *
+ * This program is free but copyrighted software; see
+ * the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
+
+/* $ModDesc: Provides a module for testing the server while linked in a network */
+
+#include "inspircd.h"
+
+class CommandTest : public Command
+{
+ public:
+ CommandTest(Module* parent) : Command(parent, "TEST", 1)
+ {
+ syntax = "<action> <parameters>";
+ }
+
+ CmdResult Handle(const std::vector<std::string> &parameters, User *user)
+ {
+ if (parameters[0] == "flood")
+ {
+ unsigned int count = parameters.size() > 1 ? atoi(parameters[1].c_str()) : 100;
+ std::string line = parameters.size() > 2 ? parameters[2] : ":z.z NOTICE !flood :Flood text";
+ for(unsigned int i=0; i < count; i++)
+ user->Write(line);
+ }
+ else if (parameters[0] == "freeze")
+ {
+ user->Penalty += 100;
+ }
+ else if (parameters[0] == "shutdown")
+ {
+ int i = parameters.size() > 1 ? atoi(parameters[1].c_str()) : 2;
+ ServerInstance->SE->Shutdown(user->GetFd(), i);
+ }
+ return CMD_SUCCESS;
+ }
+};
+
+class ModuleTest : public Module
+{
+ CommandTest cmd;
+ public:
+ ModuleTest() : cmd(this)
+ {
+ if (!strstr(ServerInstance->Config->ServerName, ".test"))
+ throw ModuleException("Don't load modules without reading their descriptions!");
+ ServerInstance->AddCommand(&cmd);
+ }
+
+ Version GetVersion()
+ {
+ return Version("Provides a module for testing the server while linked in a network", VF_VENDOR|VF_OPTCOMMON);
+ }
+};
+
+MODULE_INIT(ModuleTest)
+