]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_userip.cpp
OOPS! We try again, since I'm smoking craq. LF is 0x0a NOT CR.
[user/henk/code/inspircd.git] / src / modules / m_userip.cpp
index 979ee6112674c22e87ac04de3137bf39e164b2fe..296d523008dd3f41ef09a561e0dd8c67334dbc97 100644 (file)
@@ -1 +1,86 @@
-/*       +------------------------------------+\r *       | Inspire Internet Relay Chat Daemon |\r *       +------------------------------------+\r *\r *  InspIRCd: (C) 2002-2007 InspIRCd Development Team\r * See: http://www.inspircd.org/wiki/index.php/Credits\r *\r * This program is free but copyrighted software; see\r *            the file COPYING for details.\r *\r * ---------------------------------------------------\r */\r\r#include "inspircd.h"\r#include "users.h"\r#include "channels.h"\r#include "modules.h"\r\r/* $ModDesc: Provides support for USERIP command */\r\r/** Handle /USERIP\r */\rclass cmd_userip : public command_t\r{\r public:\r   cmd_userip (InspIRCd* Instance) : command_t(Instance,"USERIP", 'o', 1)\r {\r              this->source = "m_userip.so";\r          syntax = "<nick>{,<nick>}";\r    }\r\r     CmdResult Handle (const char** parameters, int pcnt, userrec *user)\r    {\r              std::string retbuf = std::string("340 ") + user->nick + " :";\r\r         for (int i = 0; i < pcnt; i++)\r         {\r                      userrec *u = ServerInstance->FindNick(parameters[i]);\r                  if ((u) && (u->registered == REG_ALL))\r                 {\r                              retbuf = retbuf + u->nick + (IS_OPER(u) ? "*" : "") + "=+" + u->ident + "@" + u->GetIPString() + " ";\r                  }\r              }\r\r             user->WriteServ(retbuf);\r\r              /* Dont send to the network */\r         return CMD_FAILURE;\r    }\r};\r\rclass ModuleUserIP : public Module\r{\r     cmd_userip* mycommand;\r public:\r        ModuleUserIP(InspIRCd* Me)\r             : Module(Me)\r   {\r              \r               mycommand = new cmd_userip(ServerInstance);\r            ServerInstance->AddCommand(mycommand);\r }\r\r     void Implements(char* List)\r    {\r              List[I_On005Numeric] = 1;\r      }\r\r     virtual void On005Numeric(std::string &output)\r {\r              output = output + std::string(" USERIP");\r      }\r      \r       virtual ~ModuleUserIP()\r        {\r      }\r      \r       virtual Version GetVersion()\r   {\r              return Version(1,1,0,1,VF_VENDOR,API_VERSION);\r }\r      \r};\r\rMODULE_INIT(ModuleUserIP)\r\r
\ No newline at end of file
+/*       +------------------------------------+
+ *       | Inspire Internet Relay Chat Daemon |
+ *       +------------------------------------+
+ *
+ *  InspIRCd: (C) 2002-2007 InspIRCd Development Team
+ * See: http://www.inspircd.org/wiki/index.php/Credits
+ *
+ * This program is free but copyrighted software; see
+ *            the file COPYING for details.
+ *
+ * ---------------------------------------------------
+ */
+
+#include "inspircd.h"
+#include "users.h"
+#include "channels.h"
+#include "modules.h"
+
+/* $ModDesc: Provides support for USERIP command */
+
+/** Handle /USERIP
+ */
+class cmd_userip : public command_t
+{
+ public:
+       cmd_userip (InspIRCd* Instance) : command_t(Instance,"USERIP", 'o', 1)
+       {
+               this->source = "m_userip.so";
+               syntax = "<nick>{,<nick>}";
+       }
+
+       CmdResult Handle (const char** parameters, int pcnt, userrec *user)
+       {
+               std::string retbuf = std::string("340 ") + user->nick + " :";
+
+               for (int i = 0; i < pcnt; i++)
+               {
+                       userrec *u = ServerInstance->FindNick(parameters[i]);
+                       if ((u) && (u->registered == REG_ALL))
+                       {
+                               retbuf = retbuf + u->nick + (IS_OPER(u) ? "*" : "") + "=+" + u->ident + "@" + u->GetIPString() + " ";
+                       }
+               }
+
+               user->WriteServ(retbuf);
+
+               /* Dont send to the network */
+               return CMD_FAILURE;
+       }
+};
+
+class ModuleUserIP : public Module
+{
+       cmd_userip* mycommand;
+ public:
+       ModuleUserIP(InspIRCd* Me)
+               : Module(Me)
+       {
+               
+               mycommand = new cmd_userip(ServerInstance);
+               ServerInstance->AddCommand(mycommand);
+       }
+
+       void Implements(char* List)
+       {
+               List[I_On005Numeric] = 1;
+       }
+
+       virtual void On005Numeric(std::string &output)
+       {
+               output = output + std::string(" USERIP");
+       }
+       
+       virtual ~ModuleUserIP()
+       {
+       }
+       
+       virtual Version GetVersion()
+       {
+               return Version(1,1,0,1,VF_VENDOR,API_VERSION);
+       }
+       
+};
+
+MODULE_INIT(ModuleUserIP)
+