From 2cf348bf6bf64353350fb7df163cf0b9ecd95a13 Mon Sep 17 00:00:00 2001 From: brain Date: Sun, 8 May 2005 04:16:10 +0000 Subject: Added m_userip.cpp requested by Selphie git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1327 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_userip.cpp | 90 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 src/modules/m_userip.cpp (limited to 'src') diff --git a/src/modules/m_userip.cpp b/src/modules/m_userip.cpp new file mode 100644 index 000000000..4bc215514 --- /dev/null +++ b/src/modules/m_userip.cpp @@ -0,0 +1,90 @@ +/* +------------------------------------+ + * | Inspire Internet Relay Chat Daemon | + * +------------------------------------+ + * + * Inspire is copyright (C) 2002-2004 ChatSpike-Dev. + * E-mail: + * + * + * + * Written by Craig Edwards, Craig McLure, and others. + * This program is free but copyrighted software; see + * the file COPYING for details. + * + * --------------------------------------------------- + */ + +#include +#include +#include "users.h" +#include "channels.h" +#include "modules.h" + +/* $ModDesc: Provides support for USERIP command */ + +Server *Srv; + +void handle_userip(char **parameters, int pcnt, userrec *user) +{ + 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); +} + + +class ModuleUserIP : public Module +{ + public: + ModuleUserIP() + { + Srv = new Server; + Srv->AddCommand("USERIP",handle_UserIP,'o',1,"m_Userip.so"); + } + + virtual ~ModuleUserIP() + { + delete Srv; + } + + virtual Version GetVersion() + { + return Version(1,0,0,1,VF_VENDOR); + } + +}; + +// stuff down here is the module-factory stuff. For basic modules you can ignore this. + +class ModuleUserIPFactory : public ModuleFactory +{ + public: + ModuleUserIPFactory() + { + } + + ~ModuleUserIPFactory() + { + } + + virtual Module * CreateModule() + { + return new ModuleUserIP; + } + +}; + + +extern "C" void * init_module( void ) +{ + return new ModuleUserIPFactory; +} + -- cgit v1.2.3