X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_userip.cpp;h=fe37ebc7ff4ffdee14c4f1667a89cabc19fdeb73;hb=1383dba43e463f292aea094d01f62f355946049d;hp=4bc2155140dd58f76a494cd9ed3efac3e7855e0d;hpb=2cf348bf6bf64353350fb7df163cf0b9ecd95a13;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_userip.cpp b/src/modules/m_userip.cpp index 4bc215514..fe37ebc7f 100644 --- a/src/modules/m_userip.cpp +++ b/src/modules/m_userip.cpp @@ -2,7 +2,7 @@ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * - * Inspire is copyright (C) 2002-2004 ChatSpike-Dev. + * InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev. * E-mail: * * @@ -14,45 +14,68 @@ * --------------------------------------------------- */ +using namespace std; + #include #include #include "users.h" #include "channels.h" #include "modules.h" +#include "helperfuncs.h" /* $ModDesc: Provides support for USERIP command */ Server *Srv; - -void handle_userip(char **parameters, int pcnt, userrec *user) + +class cmd_userip : public command_t { - char Return[MAXBUF],junk[MAXBUF]; - snprintf(Return,MAXBUF,"302 %s :",user->nick); - for (int i = 0; i < pcnt; i++) - { - userrec *u = Find(parameters[i]); - if (u) - { - snprintf(junk,MAXBUF,"%s%s=+%s@%s ",u->nick,strchr(u->modes,'o') ? "*" : "",u->ident,u->ip); - strlcat(Return,junk,MAXBUF); - } - } - WriteServ(user->fd,Return); -} + public: + cmd_userip () : command_t("USERIP", 'o', 1) + { + this->source = "m_userip.so"; + } + void Handle (char **parameters, int pcnt, userrec *user) + { + char Return[MAXBUF],junk[MAXBUF]; + snprintf(Return,MAXBUF,"340 %s :",user->nick); + for (int i = 0; i < pcnt; i++) + { + userrec *u = Find(parameters[i]); + if (u) + { + snprintf(junk,MAXBUF,"%s%s=+%s@%s ",u->nick,strchr(u->modes,'o') ? "*" : "",u->ident,u->ip); + strlcat(Return,junk,MAXBUF); + } + } + WriteServ(user->fd,Return); + } +}; class ModuleUserIP : public Module { + cmd_userip* mycommand; public: - ModuleUserIP() + ModuleUserIP(Server* Me) + : Module::Module(Me) + { + Srv = Me; + mycommand = new cmd_userip(); + Srv->AddCommand(mycommand); + } + + void Implements(char* List) { - Srv = new Server; - Srv->AddCommand("USERIP",handle_UserIP,'o',1,"m_Userip.so"); + List[I_On005Numeric] = 1; } + + virtual void On005Numeric(std::string &output) + { + output = output + std::string(" USERIP"); + } virtual ~ModuleUserIP() { - delete Srv; } virtual Version GetVersion() @@ -75,9 +98,9 @@ class ModuleUserIPFactory : public ModuleFactory { } - virtual Module * CreateModule() + virtual Module * CreateModule(Server* Me) { - return new ModuleUserIP; + return new ModuleUserIP(Me); } };